Building Cocoa Applications: A Step-by-Step. Four-function calculation application that's similar to the calculator that comes with Mac OS X MathPaper (Part III) An application that is similar to a word processor but that. People who lack the dexterity or the vision required to accurately use a mouse can still benefit from the Mac OS.
Stereonet 11 is a huge release with a completely new and robust internal data structure and an openGL 3D view of the lower hemisphere for teaching purposes. It includes almost all of the goodness of Stereonet 10 and lots of subtle new tweaks as well (check out the detialed version history, below). This version of Stereonet is compatible with all modern operating systems and has a modern user interface which has been modeled after OSXStereonet for Mac by Nestor Cardozo and me. It can read and write older Stereonet text files, can read the Stereonet 11 binary files, but saves its data in a new binary format.
For those hardy souls using Linux, you too can download a copy of Stereonet 11, though I have never seen it run on a Linux box and don't know if there are any compatibility issues!
For long term viability of your data, however, you should still export any work as text files which will always be readable by a large number of programs.
A comprehensive manual is included with the zip archive. For Mac Users still on Mac OS X 10.5 and lower (Leopard, Tiger, etc.), you can download a Carbon version of Stereonet. Note that this version will not be kept up to date with the above Cocoa version.
Version History
Versions 11.0.2, 11.0.3 — 2020.05.14
Versions 10.4.6 — 2020.03.19
Versions 10.4.5 — 2020.02.25
Versions 10.4.4 — 2020.01.31
Versions 10.4.2 — 2019.10.08 (PDFs & the clipboard finally work right release ;-)
Versions 10.4.0, 10.4.1 — 2019.10.01 (PDFs & the clipboard finally work right release ;-)
Versions 10.2.9 — 2019.04.03Wd my passport for mac not showing up.
Versions 10.2.8 — 2019.01.28
Versions 10.2.7 — 2019.01.21
Versions 10.2.5 (Mac only)— 2018.11.01
Versions 10.2.0 — 2018.10.30
Versions 10.1.6 — 2018.08.09
Versions 10.1.5 — 2018.08.03
Versions 10.1.1 — 2018.02.19
Versions 10.1.0 — 2018.02.19
Versions 10.0.4, 10.0.5, 10.0.6 — 2018.01.30
Version 10.0.3 — 2018.01.21
Version 10.0.2 — 2018.01.18
Version 10.0.1 — 2018.01.14
Version 10.0.0 — 2017.12.21 (Happy Holidays!)
Version 9.9.6 — 2017.08.11
Version 9.9.5 — 2017.03.28
Version 9.9.4 — 2017.03.14
Version 9.9.3 — 2017.01.24
Version 9.9.2 — 2017.01.24
Version 9.9.1 — 2016.12.09
Version 9.9.0 — 2016.12.05
Version 9.8.6 — 2016.11.21
Version 9.8.5 — 2016.11.08
Version 9.8.4 — 2016.11.08
Version 9.8.3 — 2016.07.28
Version 9.8.2 — 2016.07.24
Version 9.8.0 — 2016.07.15
Version 9.7.0 — 2016.07.11
Version 9.6.2 — 2016.06.11
Version 9.6.1 — 2016.05.26
Version 9.6.0 — 2016.05.15
Version 9.5.4 — 2016.04.26
Version 9.5.3 — 2016.03.03
Version 9.5.2 — 2016.01.19
Version 9.5.1 — 2016.01.07
Version 9.5.0 — 2016.01.03 (Happy New Year!)
Version 9.3.3 — 2015.11.28
Version 9.3.2 — 2015.09.03
Version 9.3.1 — 2015.06.03
Version 9.3.0 — 2015.05.13
Version 9.2.3 — 2015.02.16
Version 9.2.2 — 2015.01.31
Version 9.2.1 — 2015.01.18
Version 9.2.0 — 2014.08.18
Version 9.1.1 — 2014.07.19
Version 9.1.0 — 2014.05.29
Version 9.0.6 — 2014.04.18
Version 9.0.4 — 2014.03.18
Version 9.0.3 — 2014.02.11
Version 9.0.1 — 2014.02.06; 9.0.2 — 2014.03.05
Version 9.0.0— 2014.01.28
Version 8.9.5, 8.9.6— 2014.01.24
Version 8.9.2— 2013.11.24
Version 8.9.1— 2013.11.14
Choices of leaders are less puzzling here than in later installments, perhaps, but it must have been a programmer's sick joke to make Mahatma Gandhi a bullying warmonger.Civilization has some interesting world creation settings, which I strongly suggest you use, because the Earth map for it is absolutely terrible (crowded, poorly scaled, and god help you if you picked the English, who are stuck on an island).Civilization is bright and colorful and is a fairly casual play compared to later installments. The biggest strategic factor is Civilization's signature “Wonders of the World” improvement; these unique city projects are as numerous as they are expensive, so building them all yourself is next to impossible on any reasonable challenge difficulty.One of the notable aspects of Civilization was the rather motley and incongruous crew of historical figures used to represent each faction. Download nuclear throne update 98 free for mac pc. This gives you a bit of flexibility in your strategy, though there's only a limited amount of optimization—it's not rock-paper-scissors; units progress with each era in a straight-forward manner—it's more about when you get one of one type over one of the other. One can easily get an entire game in over the course of one late night or a lazy weekend.Review By P. You're presented with opportunities for peace and trade or war and conquest.Advances are less linear than RTS games and improvements are permanent unlike, say, Age of Empires, where you play multiple scenarios with your civilization and start essentially from scratch each time.
Version 8.9.0— 2013.10.21
Version 8.8.9 — 2013.08.28
Version 8.8.8 — 2013.08.06
Version 8.8.7 — 2013.07.27
Version 8.8.6 — 2013.07.04
Version 8.8.5 — 2013.06.25, rev. 2013.06.27
Version 8.8.4 — 2013.05.13
Version 8.8.3 — 2013.05.13
Version 8.8.2 — 2013.05.13
Version 8.8.1 — 2013.05.30
Version 8.7.5 — 2013.05.16
Version 8.7.0 — 2013.05.01
Version 8.6.6 — 2013.04.11
Version 8.6.0 — 2013.03.24
Version 8.5.1, 8.5.2 — 2013.03.06
Version 8.0.4 — 2013.02.14
Version 8.0.2 — 2013.01.24
Version 8.0.1 — 2012.11.23 (counter reset)
Version 8.0.0 — 2012.10.22
Version 7.3.6 — 2012.09.23
Version 7.3.5 — 2012.09.18
Version 7.3.0
Version 7.2.4 — 2012.02.21
Version 7.2.3 — 2012.01.11
Version 7.2.1 — 2011.11.18
Version 7.2.0 — 2011.11.07
Version 7.1.6 & 7.1.7 — 2011.10.26
Version 7.1.5 — 2011.10.07
Version 7.1.2 — 2011.09.13
Version 7.1.1 — 2011.08.30
Version 7.1.0 — 2011.08.21
Version 7.0.4 — 2011.08.18
Version 7.0.3 — 2011.08.17
Version 7.0.2 — 2011.08.16
Version 7.0.1— 2011.08.15 -- Initial beta release!
When a view is printed, there are several options for how it is placed on the page. If the view is larger than a single page, the view can be clipped, resized, or tiled across multiple pages. The view’s location on each page can be adjusted. Finally, the view can add adornments to each page. The following sections describe the options available for placing the view onto a page.
When a view is too large to fit onto a single page, the view can be printed in one of several ways. The view can tile itself out onto separate logical pages so that its entire visible region is printed. Alternatively, the view can clip itself and print only the area that fits on the first page. Finally, the view can resize itself to fit onto a single page. These options can be set using the NSPrintInfo
object’s setHorizontalPagination:
and setVerticalPagination:
methods with the constants NSClipPagination
, NSFitPagination
, and NSAutoPagination
. The separate methods for horizontal and vertical pagination allow you to mix these behaviors. For example, you can clip the image in one dimension, but tile it in the other. If these options are not sufficient, the view can also implement its own pagination scheme. The following sections describe each option.
To provide a completely custom pagination scheme that does not use the built-in pagination support of the NSView
class, a view needs to implement only two simple methods and set
Set up the pagination mode (NSPrintingPaginationMode
) using the the appropriate method of NSPrintInfo
(setHorizontalPagination:
or setVerticalPagination:
Override the knowsPageRange:
method so it returns YES
to indicate the custom view will collocate the dimension of each page.
Implement the rectForPage:
method so it uses the page page number and the current printing information to calculate an appropriate rectangle in the view’s coordinate system. The printing system sends a rectForPage:
message to your app before each page is printed, base on the range of pages the user selects in the Print panel. Note that the vertical and horizontal pagination settings in the NSPrintInfo
object are ignored (unless your implementation takes them into account).
Listing 4-1 shows a simple implementation that splits a view vertically into pages that have the maximum size. The code does not show setting the pagination mode, which you must do.
Listing 4-1 Code that splits the view vertically into pages
When you perform custom pagination, you can override the drawPageBorderWithSize:
method to add extra features to the page, such as crop marks, date/time strings, or page numbers. When you override drawPageBorderWithSize:
:
Save the view’s existing body frame—you will need to restore it at the end of the method.
Resize the body frame to a rect with origin (0,0)
and a size equal to the incoming borderSize
parameter.
This new frame now encompasses the margins instead of hiding them.
Add your custom border elements to all four margin areas (top, bottom, left, and right).
You typically use the drawAtPoint:
method for drawing. Any set of drawing calls must be preceded by lockFocus:
and followed by unlockFocus:
, otherwise drawPageBorderWithSize:
will not draw anything to the page for those calls.
Use the paper and margin dimensions from the print info object to constrain the printable area and prevent drawPageBorderWithSize:
from printing within the body text frame. If you want to print within the body text frame—to print a watermark, for example—do so by printing directly in the newly enlarged frame and ignoring the margin constraints.
Reset the frame to the body text area before exiting the method.
This assures the next page of content will print only within the paginated portion of the view.
If the view does not supply its own pagination information and one of the print info object’s pagination settings is NSAutoPagination
, NSView
tries to fit as much of the view being printed onto a logical page, slicing the view into the largest possible chunks along the given direction (horizontal or vertical). This is sufficient for many views, but if a view’s image must be divided only at certain places—between lines of text or cells in a table, for example—the view can adjust the automatic mechanism to accommodate this by reducing the height or width of each page.
Before printing begins, the view calculates the positions of all the row and column page breaks and gives you an opportunity to adjust them. The adjustPageHeightNew:top:bottom:limit:
method provides an out parameter for the new bottom coordinate of the page, followed by the proposed top and bottom. An additional parameter limits the height of the page; the bottom can’t be moved above it. The adjustPageWidthNew:left:right:limit:
method works in the same way to allow the view to adjust the width of a page. The limits are calculated as a percentage of the proposed page’s height or width. Your view subclass can also customize this percentage by overriding the methods heightAdjustLimit
and widthAdjustLimit
to return the fraction of the page that can be adjusted; a value of zero indicates that no adjustments are allowed whereas a value of one indicates that the right or bottom edge of the page bounds can be adjusted all the way to the left or top edge.
If one of the print info object’s pagination values is NSClipPagination
, the view is clipped to a single page along that dimension. If the horizontal pagination is set to clipped, the left most section of the view is printed, clipped to the width of a single page. If the vertical pagination is set to clipped, the top most section of the view is printed, clipped to the height of a single page.
If the print info object’s pagination setting is NSFitPagination
, the image is resized to fit onto the page. Although vertical and horizontal pagination need not be the same, if either dimension is scaled, the other dimension is scaled by the same amount to avoid distorting the image. If both dimensions are scaled, the scaling factor that produces the smaller image is used, thereby avoiding both distortion and clipping. Note that print info object’s scaling factor (NSPrintScalingFactor
), which the user sets in the Page Layout panel, is independent of the scaling that’s imposed by pagination and is applied after the pagination scaling.
The NSView
method locationOfPrintRect:
places content according to several print info attributes. By default it places the image in the upper left corner of the page, but if the print info object’s isHorizontallyCentered
or isVerticallyCentered
methods return YES
, it centers a single-page image along the appropriate axis. A multiple-page document, however, is always placed at the top left corner of the page so that the divided pieces can be assembled at their edges.
Override this method to position the image yourself. The point returned by locationOfPrintRect:
is relative to the bottom-left corner of the paper in page coordinates. You need to include the page margins when calculating the position.
After the NSView
position the rectangle on the page, it invokes drawPageBorderWithSize:
. If you haven’t implemented this method, nothing happens. If you have implemented drawPageBorderWithSize:
, any extra marks—crop marks, page numbers, and so on—you draw in this method are added to the page. The drawPageBorderWithSize:
method is invoked by the printing system once for each page.
See Custom Pagination for more information on using drawPageBorderWithSize:
.
Copyright © 2002, 2012 Apple Inc. All Rights Reserved. Terms of Use Privacy Policy Updated: 2012-12-20
Building Cocoa Applications: A Step-by-Step. Four-function calculation application that\'s similar to the calculator that comes with Mac OS X MathPaper (Part III) An application that is similar to a word processor but that. People who lack the dexterity or the vision required to accurately use a mouse can still benefit from the Mac OS.
Stereonet 11 is a huge release with a completely new and robust internal data structure and an openGL 3D view of the lower hemisphere for teaching purposes. It includes almost all of the goodness of Stereonet 10 and lots of subtle new tweaks as well (check out the detialed version history, below). This version of Stereonet is compatible with all modern operating systems and has a modern user interface which has been modeled after OSXStereonet for Mac by Nestor Cardozo and me. It can read and write older Stereonet text files, can read the Stereonet 11 binary files, but saves its data in a new binary format.
For those hardy souls using Linux, you too can download a copy of Stereonet 11, though I have never seen it run on a Linux box and don\'t know if there are any compatibility issues!
For long term viability of your data, however, you should still export any work as text files which will always be readable by a large number of programs.
A comprehensive manual is included with the zip archive. For Mac Users still on Mac OS X 10.5 and lower (Leopard, Tiger, etc.), you can download a Carbon version of Stereonet. Note that this version will not be kept up to date with the above Cocoa version.
Version History
Versions 11.0.2, 11.0.3 — 2020.05.14
Versions 10.4.6 — 2020.03.19
Versions 10.4.5 — 2020.02.25
Versions 10.4.4 — 2020.01.31
Versions 10.4.2 — 2019.10.08 (PDFs & the clipboard finally work right release ;-)
Versions 10.4.0, 10.4.1 — 2019.10.01 (PDFs & the clipboard finally work right release ;-)
Versions 10.2.9 — 2019.04.03Wd my passport for mac not showing up.
Versions 10.2.8 — 2019.01.28
Versions 10.2.7 — 2019.01.21
Versions 10.2.5 (Mac only)— 2018.11.01
Versions 10.2.0 — 2018.10.30
Versions 10.1.6 — 2018.08.09
Versions 10.1.5 — 2018.08.03
Versions 10.1.1 — 2018.02.19
Versions 10.1.0 — 2018.02.19
Versions 10.0.4, 10.0.5, 10.0.6 — 2018.01.30
Version 10.0.3 — 2018.01.21
Version 10.0.2 — 2018.01.18
Version 10.0.1 — 2018.01.14
Version 10.0.0 — 2017.12.21 (Happy Holidays!)
Version 9.9.6 — 2017.08.11
Version 9.9.5 — 2017.03.28
Version 9.9.4 — 2017.03.14
Version 9.9.3 — 2017.01.24
Version 9.9.2 — 2017.01.24
Version 9.9.1 — 2016.12.09
Version 9.9.0 — 2016.12.05
Version 9.8.6 — 2016.11.21
Version 9.8.5 — 2016.11.08
Version 9.8.4 — 2016.11.08
Version 9.8.3 — 2016.07.28
Version 9.8.2 — 2016.07.24
Version 9.8.0 — 2016.07.15
Version 9.7.0 — 2016.07.11
Version 9.6.2 — 2016.06.11
Version 9.6.1 — 2016.05.26
Version 9.6.0 — 2016.05.15
Version 9.5.4 — 2016.04.26
Version 9.5.3 — 2016.03.03
Version 9.5.2 — 2016.01.19
Version 9.5.1 — 2016.01.07
Version 9.5.0 — 2016.01.03 (Happy New Year!)
Version 9.3.3 — 2015.11.28
Version 9.3.2 — 2015.09.03
Version 9.3.1 — 2015.06.03
Version 9.3.0 — 2015.05.13
Version 9.2.3 — 2015.02.16
Version 9.2.2 — 2015.01.31
Version 9.2.1 — 2015.01.18
Version 9.2.0 — 2014.08.18
Version 9.1.1 — 2014.07.19
Version 9.1.0 — 2014.05.29
Version 9.0.6 — 2014.04.18
Version 9.0.4 — 2014.03.18
Version 9.0.3 — 2014.02.11
Version 9.0.1 — 2014.02.06; 9.0.2 — 2014.03.05
Version 9.0.0— 2014.01.28
Version 8.9.5, 8.9.6— 2014.01.24
Version 8.9.2— 2013.11.24
Version 8.9.1— 2013.11.14
Choices of leaders are less puzzling here than in later installments, perhaps, but it must have been a programmer\'s sick joke to make Mahatma Gandhi a bullying warmonger.Civilization has some interesting world creation settings, which I strongly suggest you use, because the Earth map for it is absolutely terrible (crowded, poorly scaled, and god help you if you picked the English, who are stuck on an island).Civilization is bright and colorful and is a fairly casual play compared to later installments. The biggest strategic factor is Civilization\'s signature “Wonders of the World” improvement; these unique city projects are as numerous as they are expensive, so building them all yourself is next to impossible on any reasonable challenge difficulty.One of the notable aspects of Civilization was the rather motley and incongruous crew of historical figures used to represent each faction. Download nuclear throne update 98 free for mac pc. This gives you a bit of flexibility in your strategy, though there\'s only a limited amount of optimization—it\'s not rock-paper-scissors; units progress with each era in a straight-forward manner—it\'s more about when you get one of one type over one of the other. One can easily get an entire game in over the course of one late night or a lazy weekend.Review By P. You\'re presented with opportunities for peace and trade or war and conquest.Advances are less linear than RTS games and improvements are permanent unlike, say, Age of Empires, where you play multiple scenarios with your civilization and start essentially from scratch each time.
Version 8.9.0— 2013.10.21
Version 8.8.9 — 2013.08.28
Version 8.8.8 — 2013.08.06
Version 8.8.7 — 2013.07.27
Version 8.8.6 — 2013.07.04
Version 8.8.5 — 2013.06.25, rev. 2013.06.27
Version 8.8.4 — 2013.05.13
Version 8.8.3 — 2013.05.13
Version 8.8.2 — 2013.05.13
Version 8.8.1 — 2013.05.30
Version 8.7.5 — 2013.05.16
Version 8.7.0 — 2013.05.01
Version 8.6.6 — 2013.04.11
Version 8.6.0 — 2013.03.24
Version 8.5.1, 8.5.2 — 2013.03.06
Version 8.0.4 — 2013.02.14
Version 8.0.2 — 2013.01.24
Version 8.0.1 — 2012.11.23 (counter reset)
Version 8.0.0 — 2012.10.22
Version 7.3.6 — 2012.09.23
Version 7.3.5 — 2012.09.18
Version 7.3.0
Version 7.2.4 — 2012.02.21
Version 7.2.3 — 2012.01.11
Version 7.2.1 — 2011.11.18
Version 7.2.0 — 2011.11.07
Version 7.1.6 & 7.1.7 — 2011.10.26
Version 7.1.5 — 2011.10.07
Version 7.1.2 — 2011.09.13
Version 7.1.1 — 2011.08.30
Version 7.1.0 — 2011.08.21
Version 7.0.4 — 2011.08.18
Version 7.0.3 — 2011.08.17
Version 7.0.2 — 2011.08.16
Version 7.0.1— 2011.08.15 -- Initial beta release!
When a view is printed, there are several options for how it is placed on the page. If the view is larger than a single page, the view can be clipped, resized, or tiled across multiple pages. The view’s location on each page can be adjusted. Finally, the view can add adornments to each page. The following sections describe the options available for placing the view onto a page.
When a view is too large to fit onto a single page, the view can be printed in one of several ways. The view can tile itself out onto separate logical pages so that its entire visible region is printed. Alternatively, the view can clip itself and print only the area that fits on the first page. Finally, the view can resize itself to fit onto a single page. These options can be set using the NSPrintInfo
object’s setHorizontalPagination:
and setVerticalPagination:
methods with the constants NSClipPagination
, NSFitPagination
, and NSAutoPagination
. The separate methods for horizontal and vertical pagination allow you to mix these behaviors. For example, you can clip the image in one dimension, but tile it in the other. If these options are not sufficient, the view can also implement its own pagination scheme. The following sections describe each option.
To provide a completely custom pagination scheme that does not use the built-in pagination support of the NSView
class, a view needs to implement only two simple methods and set
Set up the pagination mode (NSPrintingPaginationMode
) using the the appropriate method of NSPrintInfo
(setHorizontalPagination:
or setVerticalPagination:
Override the knowsPageRange:
method so it returns YES
to indicate the custom view will collocate the dimension of each page.
Implement the rectForPage:
method so it uses the page page number and the current printing information to calculate an appropriate rectangle in the view’s coordinate system. The printing system sends a rectForPage:
message to your app before each page is printed, base on the range of pages the user selects in the Print panel. Note that the vertical and horizontal pagination settings in the NSPrintInfo
object are ignored (unless your implementation takes them into account).
Listing 4-1 shows a simple implementation that splits a view vertically into pages that have the maximum size. The code does not show setting the pagination mode, which you must do.
Listing 4-1 Code that splits the view vertically into pages
When you perform custom pagination, you can override the drawPageBorderWithSize:
method to add extra features to the page, such as crop marks, date/time strings, or page numbers. When you override drawPageBorderWithSize:
:
Save the view’s existing body frame—you will need to restore it at the end of the method.
Resize the body frame to a rect with origin (0,0)
and a size equal to the incoming borderSize
parameter.
This new frame now encompasses the margins instead of hiding them.
Add your custom border elements to all four margin areas (top, bottom, left, and right).
You typically use the drawAtPoint:
method for drawing. Any set of drawing calls must be preceded by lockFocus:
and followed by unlockFocus:
, otherwise drawPageBorderWithSize:
will not draw anything to the page for those calls.
Use the paper and margin dimensions from the print info object to constrain the printable area and prevent drawPageBorderWithSize:
from printing within the body text frame. If you want to print within the body text frame—to print a watermark, for example—do so by printing directly in the newly enlarged frame and ignoring the margin constraints.
Reset the frame to the body text area before exiting the method.
This assures the next page of content will print only within the paginated portion of the view.
If the view does not supply its own pagination information and one of the print info object’s pagination settings is NSAutoPagination
, NSView
tries to fit as much of the view being printed onto a logical page, slicing the view into the largest possible chunks along the given direction (horizontal or vertical). This is sufficient for many views, but if a view’s image must be divided only at certain places—between lines of text or cells in a table, for example—the view can adjust the automatic mechanism to accommodate this by reducing the height or width of each page.
Before printing begins, the view calculates the positions of all the row and column page breaks and gives you an opportunity to adjust them. The adjustPageHeightNew:top:bottom:limit:
method provides an out parameter for the new bottom coordinate of the page, followed by the proposed top and bottom. An additional parameter limits the height of the page; the bottom can’t be moved above it. The adjustPageWidthNew:left:right:limit:
method works in the same way to allow the view to adjust the width of a page. The limits are calculated as a percentage of the proposed page’s height or width. Your view subclass can also customize this percentage by overriding the methods heightAdjustLimit
and widthAdjustLimit
to return the fraction of the page that can be adjusted; a value of zero indicates that no adjustments are allowed whereas a value of one indicates that the right or bottom edge of the page bounds can be adjusted all the way to the left or top edge.
If one of the print info object’s pagination values is NSClipPagination
, the view is clipped to a single page along that dimension. If the horizontal pagination is set to clipped, the left most section of the view is printed, clipped to the width of a single page. If the vertical pagination is set to clipped, the top most section of the view is printed, clipped to the height of a single page.
If the print info object’s pagination setting is NSFitPagination
, the image is resized to fit onto the page. Although vertical and horizontal pagination need not be the same, if either dimension is scaled, the other dimension is scaled by the same amount to avoid distorting the image. If both dimensions are scaled, the scaling factor that produces the smaller image is used, thereby avoiding both distortion and clipping. Note that print info object’s scaling factor (NSPrintScalingFactor
), which the user sets in the Page Layout panel, is independent of the scaling that’s imposed by pagination and is applied after the pagination scaling.
The NSView
method locationOfPrintRect:
places content according to several print info attributes. By default it places the image in the upper left corner of the page, but if the print info object’s isHorizontallyCentered
or isVerticallyCentered
methods return YES
, it centers a single-page image along the appropriate axis. A multiple-page document, however, is always placed at the top left corner of the page so that the divided pieces can be assembled at their edges.
Override this method to position the image yourself. The point returned by locationOfPrintRect:
is relative to the bottom-left corner of the paper in page coordinates. You need to include the page margins when calculating the position.
After the NSView
position the rectangle on the page, it invokes drawPageBorderWithSize:
. If you haven’t implemented this method, nothing happens. If you have implemented drawPageBorderWithSize:
, any extra marks—crop marks, page numbers, and so on—you draw in this method are added to the page. The drawPageBorderWithSize:
method is invoked by the printing system once for each page.
See Custom Pagination for more information on using drawPageBorderWithSize:
.
Copyright © 2002, 2012 Apple Inc. All Rights Reserved. Terms of Use Privacy Policy Updated: 2012-12-20
...'>Accurately Calculating Text Height In Cocoa For Mac(02.04.2020)Building Cocoa Applications: A Step-by-Step. Four-function calculation application that\'s similar to the calculator that comes with Mac OS X MathPaper (Part III) An application that is similar to a word processor but that. People who lack the dexterity or the vision required to accurately use a mouse can still benefit from the Mac OS.
Stereonet 11 is a huge release with a completely new and robust internal data structure and an openGL 3D view of the lower hemisphere for teaching purposes. It includes almost all of the goodness of Stereonet 10 and lots of subtle new tweaks as well (check out the detialed version history, below). This version of Stereonet is compatible with all modern operating systems and has a modern user interface which has been modeled after OSXStereonet for Mac by Nestor Cardozo and me. It can read and write older Stereonet text files, can read the Stereonet 11 binary files, but saves its data in a new binary format.
For those hardy souls using Linux, you too can download a copy of Stereonet 11, though I have never seen it run on a Linux box and don\'t know if there are any compatibility issues!
For long term viability of your data, however, you should still export any work as text files which will always be readable by a large number of programs.
A comprehensive manual is included with the zip archive. For Mac Users still on Mac OS X 10.5 and lower (Leopard, Tiger, etc.), you can download a Carbon version of Stereonet. Note that this version will not be kept up to date with the above Cocoa version.
Version History
Versions 11.0.2, 11.0.3 — 2020.05.14
Versions 10.4.6 — 2020.03.19
Versions 10.4.5 — 2020.02.25
Versions 10.4.4 — 2020.01.31
Versions 10.4.2 — 2019.10.08 (PDFs & the clipboard finally work right release ;-)
Versions 10.4.0, 10.4.1 — 2019.10.01 (PDFs & the clipboard finally work right release ;-)
Versions 10.2.9 — 2019.04.03Wd my passport for mac not showing up.
Versions 10.2.8 — 2019.01.28
Versions 10.2.7 — 2019.01.21
Versions 10.2.5 (Mac only)— 2018.11.01
Versions 10.2.0 — 2018.10.30
Versions 10.1.6 — 2018.08.09
Versions 10.1.5 — 2018.08.03
Versions 10.1.1 — 2018.02.19
Versions 10.1.0 — 2018.02.19
Versions 10.0.4, 10.0.5, 10.0.6 — 2018.01.30
Version 10.0.3 — 2018.01.21
Version 10.0.2 — 2018.01.18
Version 10.0.1 — 2018.01.14
Version 10.0.0 — 2017.12.21 (Happy Holidays!)
Version 9.9.6 — 2017.08.11
Version 9.9.5 — 2017.03.28
Version 9.9.4 — 2017.03.14
Version 9.9.3 — 2017.01.24
Version 9.9.2 — 2017.01.24
Version 9.9.1 — 2016.12.09
Version 9.9.0 — 2016.12.05
Version 9.8.6 — 2016.11.21
Version 9.8.5 — 2016.11.08
Version 9.8.4 — 2016.11.08
Version 9.8.3 — 2016.07.28
Version 9.8.2 — 2016.07.24
Version 9.8.0 — 2016.07.15
Version 9.7.0 — 2016.07.11
Version 9.6.2 — 2016.06.11
Version 9.6.1 — 2016.05.26
Version 9.6.0 — 2016.05.15
Version 9.5.4 — 2016.04.26
Version 9.5.3 — 2016.03.03
Version 9.5.2 — 2016.01.19
Version 9.5.1 — 2016.01.07
Version 9.5.0 — 2016.01.03 (Happy New Year!)
Version 9.3.3 — 2015.11.28
Version 9.3.2 — 2015.09.03
Version 9.3.1 — 2015.06.03
Version 9.3.0 — 2015.05.13
Version 9.2.3 — 2015.02.16
Version 9.2.2 — 2015.01.31
Version 9.2.1 — 2015.01.18
Version 9.2.0 — 2014.08.18
Version 9.1.1 — 2014.07.19
Version 9.1.0 — 2014.05.29
Version 9.0.6 — 2014.04.18
Version 9.0.4 — 2014.03.18
Version 9.0.3 — 2014.02.11
Version 9.0.1 — 2014.02.06; 9.0.2 — 2014.03.05
Version 9.0.0— 2014.01.28
Version 8.9.5, 8.9.6— 2014.01.24
Version 8.9.2— 2013.11.24
Version 8.9.1— 2013.11.14
Choices of leaders are less puzzling here than in later installments, perhaps, but it must have been a programmer\'s sick joke to make Mahatma Gandhi a bullying warmonger.Civilization has some interesting world creation settings, which I strongly suggest you use, because the Earth map for it is absolutely terrible (crowded, poorly scaled, and god help you if you picked the English, who are stuck on an island).Civilization is bright and colorful and is a fairly casual play compared to later installments. The biggest strategic factor is Civilization\'s signature “Wonders of the World” improvement; these unique city projects are as numerous as they are expensive, so building them all yourself is next to impossible on any reasonable challenge difficulty.One of the notable aspects of Civilization was the rather motley and incongruous crew of historical figures used to represent each faction. Download nuclear throne update 98 free for mac pc. This gives you a bit of flexibility in your strategy, though there\'s only a limited amount of optimization—it\'s not rock-paper-scissors; units progress with each era in a straight-forward manner—it\'s more about when you get one of one type over one of the other. One can easily get an entire game in over the course of one late night or a lazy weekend.Review By P. You\'re presented with opportunities for peace and trade or war and conquest.Advances are less linear than RTS games and improvements are permanent unlike, say, Age of Empires, where you play multiple scenarios with your civilization and start essentially from scratch each time.
Version 8.9.0— 2013.10.21
Version 8.8.9 — 2013.08.28
Version 8.8.8 — 2013.08.06
Version 8.8.7 — 2013.07.27
Version 8.8.6 — 2013.07.04
Version 8.8.5 — 2013.06.25, rev. 2013.06.27
Version 8.8.4 — 2013.05.13
Version 8.8.3 — 2013.05.13
Version 8.8.2 — 2013.05.13
Version 8.8.1 — 2013.05.30
Version 8.7.5 — 2013.05.16
Version 8.7.0 — 2013.05.01
Version 8.6.6 — 2013.04.11
Version 8.6.0 — 2013.03.24
Version 8.5.1, 8.5.2 — 2013.03.06
Version 8.0.4 — 2013.02.14
Version 8.0.2 — 2013.01.24
Version 8.0.1 — 2012.11.23 (counter reset)
Version 8.0.0 — 2012.10.22
Version 7.3.6 — 2012.09.23
Version 7.3.5 — 2012.09.18
Version 7.3.0
Version 7.2.4 — 2012.02.21
Version 7.2.3 — 2012.01.11
Version 7.2.1 — 2011.11.18
Version 7.2.0 — 2011.11.07
Version 7.1.6 & 7.1.7 — 2011.10.26
Version 7.1.5 — 2011.10.07
Version 7.1.2 — 2011.09.13
Version 7.1.1 — 2011.08.30
Version 7.1.0 — 2011.08.21
Version 7.0.4 — 2011.08.18
Version 7.0.3 — 2011.08.17
Version 7.0.2 — 2011.08.16
Version 7.0.1— 2011.08.15 -- Initial beta release!
When a view is printed, there are several options for how it is placed on the page. If the view is larger than a single page, the view can be clipped, resized, or tiled across multiple pages. The view’s location on each page can be adjusted. Finally, the view can add adornments to each page. The following sections describe the options available for placing the view onto a page.
When a view is too large to fit onto a single page, the view can be printed in one of several ways. The view can tile itself out onto separate logical pages so that its entire visible region is printed. Alternatively, the view can clip itself and print only the area that fits on the first page. Finally, the view can resize itself to fit onto a single page. These options can be set using the NSPrintInfo
object’s setHorizontalPagination:
and setVerticalPagination:
methods with the constants NSClipPagination
, NSFitPagination
, and NSAutoPagination
. The separate methods for horizontal and vertical pagination allow you to mix these behaviors. For example, you can clip the image in one dimension, but tile it in the other. If these options are not sufficient, the view can also implement its own pagination scheme. The following sections describe each option.
To provide a completely custom pagination scheme that does not use the built-in pagination support of the NSView
class, a view needs to implement only two simple methods and set
Set up the pagination mode (NSPrintingPaginationMode
) using the the appropriate method of NSPrintInfo
(setHorizontalPagination:
or setVerticalPagination:
Override the knowsPageRange:
method so it returns YES
to indicate the custom view will collocate the dimension of each page.
Implement the rectForPage:
method so it uses the page page number and the current printing information to calculate an appropriate rectangle in the view’s coordinate system. The printing system sends a rectForPage:
message to your app before each page is printed, base on the range of pages the user selects in the Print panel. Note that the vertical and horizontal pagination settings in the NSPrintInfo
object are ignored (unless your implementation takes them into account).
Listing 4-1 shows a simple implementation that splits a view vertically into pages that have the maximum size. The code does not show setting the pagination mode, which you must do.
Listing 4-1 Code that splits the view vertically into pages
When you perform custom pagination, you can override the drawPageBorderWithSize:
method to add extra features to the page, such as crop marks, date/time strings, or page numbers. When you override drawPageBorderWithSize:
:
Save the view’s existing body frame—you will need to restore it at the end of the method.
Resize the body frame to a rect with origin (0,0)
and a size equal to the incoming borderSize
parameter.
This new frame now encompasses the margins instead of hiding them.
Add your custom border elements to all four margin areas (top, bottom, left, and right).
You typically use the drawAtPoint:
method for drawing. Any set of drawing calls must be preceded by lockFocus:
and followed by unlockFocus:
, otherwise drawPageBorderWithSize:
will not draw anything to the page for those calls.
Use the paper and margin dimensions from the print info object to constrain the printable area and prevent drawPageBorderWithSize:
from printing within the body text frame. If you want to print within the body text frame—to print a watermark, for example—do so by printing directly in the newly enlarged frame and ignoring the margin constraints.
Reset the frame to the body text area before exiting the method.
This assures the next page of content will print only within the paginated portion of the view.
If the view does not supply its own pagination information and one of the print info object’s pagination settings is NSAutoPagination
, NSView
tries to fit as much of the view being printed onto a logical page, slicing the view into the largest possible chunks along the given direction (horizontal or vertical). This is sufficient for many views, but if a view’s image must be divided only at certain places—between lines of text or cells in a table, for example—the view can adjust the automatic mechanism to accommodate this by reducing the height or width of each page.
Before printing begins, the view calculates the positions of all the row and column page breaks and gives you an opportunity to adjust them. The adjustPageHeightNew:top:bottom:limit:
method provides an out parameter for the new bottom coordinate of the page, followed by the proposed top and bottom. An additional parameter limits the height of the page; the bottom can’t be moved above it. The adjustPageWidthNew:left:right:limit:
method works in the same way to allow the view to adjust the width of a page. The limits are calculated as a percentage of the proposed page’s height or width. Your view subclass can also customize this percentage by overriding the methods heightAdjustLimit
and widthAdjustLimit
to return the fraction of the page that can be adjusted; a value of zero indicates that no adjustments are allowed whereas a value of one indicates that the right or bottom edge of the page bounds can be adjusted all the way to the left or top edge.
If one of the print info object’s pagination values is NSClipPagination
, the view is clipped to a single page along that dimension. If the horizontal pagination is set to clipped, the left most section of the view is printed, clipped to the width of a single page. If the vertical pagination is set to clipped, the top most section of the view is printed, clipped to the height of a single page.
If the print info object’s pagination setting is NSFitPagination
, the image is resized to fit onto the page. Although vertical and horizontal pagination need not be the same, if either dimension is scaled, the other dimension is scaled by the same amount to avoid distorting the image. If both dimensions are scaled, the scaling factor that produces the smaller image is used, thereby avoiding both distortion and clipping. Note that print info object’s scaling factor (NSPrintScalingFactor
), which the user sets in the Page Layout panel, is independent of the scaling that’s imposed by pagination and is applied after the pagination scaling.
The NSView
method locationOfPrintRect:
places content according to several print info attributes. By default it places the image in the upper left corner of the page, but if the print info object’s isHorizontallyCentered
or isVerticallyCentered
methods return YES
, it centers a single-page image along the appropriate axis. A multiple-page document, however, is always placed at the top left corner of the page so that the divided pieces can be assembled at their edges.
Override this method to position the image yourself. The point returned by locationOfPrintRect:
is relative to the bottom-left corner of the paper in page coordinates. You need to include the page margins when calculating the position.
After the NSView
position the rectangle on the page, it invokes drawPageBorderWithSize:
. If you haven’t implemented this method, nothing happens. If you have implemented drawPageBorderWithSize:
, any extra marks—crop marks, page numbers, and so on—you draw in this method are added to the page. The drawPageBorderWithSize:
method is invoked by the printing system once for each page.
See Custom Pagination for more information on using drawPageBorderWithSize:
.
Copyright © 2002, 2012 Apple Inc. All Rights Reserved. Terms of Use Privacy Policy Updated: 2012-12-20
...'>Accurately Calculating Text Height In Cocoa For Mac(02.04.2020)