Mastering Perl/Tk. Graphical User Interfaces in Perl - Helion
ISBN: 978-05-965-5196-4
stron: 770, Format: ebook
Data wydania: 2002-01-25
Księgarnia: Helion
Cena książki: 152,15 zł (poprzednio: 176,92 zł)
Oszczędzasz: 14% (-24,77 zł)
Perl/Tk is the marriage of the Tk graphical toolkit with Perl, the powerful programming language used primarily for system administration, web programming, and database manipulation. With Perl/Tk, you can build Perl programs with an attractive, intuitive GUI interface with all the power of Perl behind it.Mastering Perl/Tk is the "bible" of Perl/Tk: It's not only a great book for getting started, but the best reference for learning the techniques of experienced Perl/Tk programmers. The first half of the book contains the basics on how to use Perl/Tk, and then branches out into advanced applications with a series of extensive program examples. The result is a book accessible for novices, and invaluable for experienced programmers ready to learn the next step in the elegant and effective use of Perl/Tk. The book includes:
- An introduction to each of the basic Perl/Tk widgets and geometry managers
- A dissection of the MainLoop, including how to use callbacks and bindings effectively
- Coverage of the Tix widgets, an extended set of widgets that are a part of the standard Perl/Tk distribution
- Working with images in Perl/Tk, including bitmaps, pixmaps, photos, and how to compose a compound image type
- How to create custom mega-widgets in Perl/Tk, both composite and derived
- Handling interprocess communication with Perl/Tk, both with standard Unix utilities (pipes and sockets) and with the send command designed for direct communication between Tk applications
- Developing your own Tk widget in the C language
- Examples of web applications written with Perl/Tk and the LWP library
Osoby które kupowały "Mastering Perl/Tk. Graphical User Interfaces in Perl", wybierały także:
- Perl. Mistrzostwo w programowaniu 44,00 zł, (22,00 zł -50%)
- Wielkie umysły programowania. Jak myślą i pracują twórcy najważniejszych języków 79,00 zł, (47,40 zł -40%)
- Learning Perl. Making Easy Things Easy and Hard Things Possible. 7th Edition 169,00 zł, (118,30 zł -30%)
- 100 sposobów na Perl 39,00 zł, (29,25 zł -25%)
- Mastering Perl. 2nd Edition 176,92 zł, (152,15 zł -14%)
Spis treści
Mastering Perl/Tk. Graphical User Interfaces in Perl eBook -- spis treści
- Mastering Perl/Tk
- SPECIAL OFFER: Upgrade this ebook with OReilly
- A Note Regarding Supplemental Files
- Preface
- History of This Book
- What You Should Already Know
- Whats in This Book
- Reading Order
- Typographical Conventions
- We'd Like to Hear from You
- Acknowledgments
- Steve
- Nancy
- 1. Hello, Perl/Tk
- 1.1. Perl/Tk Concepts
- 1.2. Some Perl/Tk History
- 1.2.1. The X Window System and Xlib
- 1.2.2. The Coming of Tcl/Tk
- 1.2.3. The Evolution of Perl/Tk
- 1.2.4. Perl/Tk Meets Win32
- 1.3. Getting Started with Perl/Tk
- 1.3.1. Do You Need To Install Anything?
- 1.3.2. Creating Widgets
- 1.3.3. Specifying Options
- 1.3.4. Toplevel, MainWindow, and Frame Widgets
- 1.3.5. Displaying a Widget
- 1.3.6. The Event Loop
- 1.4. Hello World Example
- 1.4.1. exit Versus destroy
- 1.5. Unsolicited Advice
- 1.5.1. Programming Style
- 1.5.2. Naming Conventions for Widget Types
- 1.5.3. Designing Your Windows
- 1.6. Debugging and PrototypingPerl/Tk Programs
- 2. Geometry Management
- 2.1. The pack Geometry Manager
- 2.1.1. Options for pack
- 2.1.2. Positioning Widgets
- 2.1.3. Allocation Rectangles
- 2.1.4. Filling the Allocation Rectangle
- 2.1.5. Expanding the Allocation Rectangle
- 2.1.6. Anchoring a Widget in Its Allocation Rectangle
- 2.1.7. Widget Order in the Window
- 2.1.8. Padding the Size of the Widget
- 2.1.8.1. Valid screen distances
- 2.1.9. Displaying in a Parent Other Than Your Own
- 2.1.10. Methods Associated with pack
- 2.1.10.1. Unpacking a widget
- 2.1.10.2. Retrieving pack information
- 2.1.10.3. Disabling and enabling automatic resizing
- 2.1.10.4. Listing widgets
- 2.1.11. Demo Programs for pack
- 2.2. The grid Geometry Manager
- 2.2.1. Special Characters
- 2.2.1.1. Spanning columns
- 2.2.1.2. Empty cells
- 2.2.2. grid Options
- 2.2.3. Specifying Rows and Columns Explicitly
- 2.2.4. Spanning Rows and Columns Explicitly
- 2.2.5. Forcing a Widget to Fill a Cell
- 2.2.6. Padding the Widget
- 2.2.7. Specifying a Different Parent
- 2.2.8. Configuring Columns and Rows
- 2.2.8.1. Weight
- 2.2.8.2. Minimum cell size
- 2.2.8.3. Padding
- 2.2.8.4. Bounding box
- 2.2.9. Removing a Widget
- 2.2.10. Getting Information
- 2.2.11. Widget Location
- 2.2.11.1. Propagation
- 2.2.12. How Many Columns and Rows?
- 2.2.13. gridSlaves
- 2.2.1. Special Characters
- 2.3. The place Geometry Manager
- 2.3.1. place Options
- 2.3.2. Absolute Coordinates
- 2.3.3. Relative Coordinates
- 2.3.4. Anchoring the Widget
- 2.3.5. Width and Height
- 2.3.6. Border Options
- 2.3.7. Methods Associated with place
- 2.3.7.1. Removing the widget
- 2.3.7.2. Place information
- 2.3.7.3. Place slaves
- 2.4. The form Geometry Manager
- 2.4.1. Options for form
- 2.4.2. Attachments
- 2.4.2.1. Attaching to the grid
- 2.4.2.2. Widget-to-widget attachments
- 2.4.2.3. Attaching to nothing
- 2.4.3. Springs
- 2.4.4. form Methods
- 2.4.4.1. Changing the grid size
- 2.4.4.2. Removing a widget from a container
- 2.4.4.3. Options info for form
- 2.4.4.4. What's managed by form?
- 2.4.4.5. Circular dependency check
- 2.5. Geometry Management Summary
- 2.1. The pack Geometry Manager
- 3. Fonts
- 3.1. Experimenting with Fonts
- 3.2. Dissecting a Font
- 3.3. Using Fonts
- 3.3.1. System Fonts
- 3.4. Using Fonts Dynamically
- 3.5. Font Manipulation Methods
- 3.5.1. One Last Example
- 4. Button, Checkbutton, and Radiobutton Widgets
- 4.1. Creating Button Widgets
- 4.2. Standard Options for Each Button Type
- 4.3. Table of Options for Button-Type Widgets
- 4.4. Displaying Text on Buttons
- 4.5. Displaying an Image or Bitmap
- 4.5.1. Images with Checkbuttons and Radiobuttons
- 4.6. Checkbutton and Radiobutton Indicator Status
- 4.7. On and Off Values for a Checkbutton
- 4.8. Radiobutton Values
- 4.9. The -command Option
- 4.10. Disabling a Button
- 4.11. Text Manipulation
- 4.12. Altering the Button's Style
- 4.13. Changing the Size of a Button
- 4.14. Adding a Keyboard Mapping
- 4.15. Color Options
- 4.16. Indicator Colors
- 4.17. Hiding the Indicator
- 4.18. Focus Options
- 4.19. Altering the Highlight Rectangle
- 4.20. Configuring a Button
- 4.21. Flashing the Button
- 4.22. Invoking the Button
- 4.23. Turning a Checkbutton/Radiobutton On and Off
- 5. Label and Entry Widgets
- 5.1. The Label Widget
- 5.1.1. Creating a Label
- 5.1.2. Label Options
- 5.1.3. How a Label Differs from Other Widgets
- 5.1.4. Relief
- 5.1.5. Status Message Example
- 5.1.6. Container Frames
- 5.1.7. Label Configuration
- 5.2. The Entry Widget
- 5.2.1. Creating the Entry Widget
- 5.2.2. Entry Options
- 5.2.3. Assigning the Entry's Contents to a Variable
- 5.2.4. Relief
- 5.2.5. Entry Indexes
- 5.2.6. Text Selection Options
- 5.2.7. The Insert Cursor
- 5.2.8. Password Entries
- 5.2.9. Entry Widget Validation
- 5.2.10. Using a Scrollbar
- 5.2.11. Configuring an Entry Widget
- 5.2.12. Deleting Text
- 5.2.13. Getting the Contents of an Entry Widget
- 5.2.14. Moving the Insertion Cursor
- 5.2.15. Getting a Numeric Index Value
- 5.2.16. Inserting Text
- 5.2.17. Scanning Text
- 5.2.18. Working with the Selection
- 5.2.19. Changing the View in the Entry Widget
- 5.3. The Perl/Tk LabEntry Mega-Widget
- 5.1. The Label Widget
- 6. The Scrollbar Widget
- 6.1. Defining Scrollbar Parts
- 6.2. The Scrolled Method
- 6.2.1. Configuring the Scrollbar(s) Created with Scrolled
- 6.3. The Scrollbar Widget
- 6.3.1. Creating a Scrollbar Widget
- 6.3.2. Scrollbar Options
- 6.3.3. Scrollbar Colors
- 6.3.4. Scrollbar Style
- 6.3.5. Scrollbar Orientation
- 6.3.6. Using the Arrows and the Slider
- 6.3.7. Assigning a Callback
- 6.3.8. How the Scrollbar Communicates with Other Widgets
- 6.3.9. Scrollbar Configuration
- 6.3.10. Defining What We Can See
- 6.3.11. Getting the Current View
- 6.3.12. Activating Elements in a Scrollbar
- 6.3.13. Calculating Change from Pixels
- 6.3.14. Locating a Point in the Trough
- 6.3.15. Identifying Elements
- 6.4. Examples
- 6.4.1. Entry Widget
- 6.4.2. Listbox, Text, and Canvas Widgets
- 6.4.3. One Scrollbar, Multiple Widgets
- 7. The Listbox Widget
- 7.1. Creating and Filling a Listbox
- 7.2. Listbox Options
- 7.3. Selection Modes
- 7.3.1. Operating System Differences
- 7.4. Colors
- 7.5. Listbox Style
- 7.5.1. Style of Selected Items
- 7.5.2. Special Listbox Resizing
- 7.6. Configuring a Listbox
- 7.7. Inserting Items
- 7.8. Deleting Items
- 7.9. Retrieving Elements
- 7.10. Selection Methods
- 7.10.1. Selecting Items
- 7.10.2. Unselecting Items
- 7.10.3. Testing for Selection
- 7.10.4. Anchoring the Selection
- 7.11. Moving to a Specific Index
- 7.12. Translating Indexes
- 7.13. Counting Items
- 7.14. Active Versus Selected
- 7.15. Bounding Box
- 7.16. Finding an Index by y Coordinate
- 7.17. Scrolling Methods
- 7.18. Listbox Virtual Events
- 7.19. Listbox Example
- 8. The Text, TextUndo,and ROText Widgets
- 8.1. Creating and Using a Text Widget
- 8.2. Text Widget Options
- 8.2.1. Fonts
- 8.2.2. Widget Size
- 8.2.3. Widget Style
- 8.2.4. Line Spacing
- 8.2.5. Tab Stops
- 8.3. A Short Break for a Simple Example
- 8.4. Text Indexes
- 8.4.1. Base Index Values
- 8.4.2. Index Modifiers
- 8.4.3. Text Index Examples
- 8.5. Text Tags
- 8.5.1. Tag Options
- 8.5.2. A Simple Tag Example
- 8.5.3. Selections in a Text Widget Using the "sel" Tag
- 8.5.4. Configuring and Creating Tags
- 8.5.5. Adding a Tag to Existing Text
- 8.5.6. Using bind with Tags
- 8.5.6.1. The Perl/Tk Text widget extended bindings
- 8.5.7. Deleting All Instances of a Tag
- 8.5.8. Removing a Tag from the Text
- 8.5.9. Raising and Lowering Tags
- 8.5.10. Getting Tag Names
- 8.5.11. Determining Where a Tag Applies
- 8.6. Inserting Text
- 8.6.1. Inserting Lines Using print and printf
- 8.7. Deleting Text
- 8.8. Retrieving Text
- 8.9. Translating Index Values
- 8.10. Comparing Index Values
- 8.11. Showing an Index
- 8.12. Getting the Size of a Character
- 8.13. Getting Line Information
- 8.14. Searching the Contents of a Text Widget
- 8.15. Scrolling
- 8.16. Marks
- 8.16.1. Setting and Getting the Gravity
- 8.16.2. Determining Mark Names
- 8.16.3. Creating and Deleting Marks
- 8.17. Embedding Widgets
- 8.17.1. windowCreate, windowCget, and windowConfigure
- 8.18. Internal Debug Flag
- 8.18.1. Scanning
- 8.19. The Perl/Tk Text Widget Extended Methods
- 8.20. The TextUndo Widget
- 8.20.1. TextUndo Virtual Events
- 8.21. The ROText Widget
- 9. The Canvas Widget
- 9.1. Creating a Canvas
- 9.2. The Canvas Coordinate System
- 9.3. The Scrollable Region
- 9.4. Using bind with a Canvas
- 9.5. Canvas Options
- 9.5.1. Common Canvas Dash, Stipple, and Tile Options
- 9.5.2. Additional Scrolling Options
- 9.5.3. Canvas Widget Option List
- 9.6. Creating Items in a Canvas
- 9.6.1. The Arc Item
- 9.6.2. The Bitmap Item
- 9.6.3. The Image Item
- 9.6.4. The Line Item
- 9.6.5. The Oval Item
- 9.6.6. The Polygon Item
- 9.6.7. The Rectangle Item
- 9.6.8. The Text Item
- 9.6.8.1. Text item indexes
- 9.6.8.2. Deleting characters
- 9.6.8.3. Positioning the cursor
- 9.6.8.4. Index information
- 9.6.8.5. Adding text
- 9.6.8.6. Selecting text
- 9.6.9. The Widget Item
- 9.6.10. The Grid Item
- 9.6.11. The Group Item
- 9.7. Configuring the Canvas Widget
- 9.8. Configuring Items in the Canvas Widget
- 9.9. Tags
- 9.9.1. Binding Items Using Tags
- 9.9.2. Finding Tags
- 9.9.3. Getting Tags from a Specific Item
- 9.10. Retrieving Bounding Box Coordinates
- 9.11. Translating Coordinates
- 9.12. Moving Items Around
- 9.13. Changing the Display List
- 9.14. Deleting Items
- 9.15. Deleting Tags
- 9.16. Determining Item Type
- 9.17. Setting Keyboard Focus
- 9.18. Rendering the Canvas as PostScript
- 9.19. Scaling the Canvas
- 9.20. Scanning
- 9.20.1. Scrolling Methods
- 9.21. A Drawing Program Example
- 10. The Scale Widget
- 10.1. Creating a Scale
- 10.2. Assigning a Callback
- 10.3. Orientation
- 10.4. Minimum and Maximum Values
- 10.5. Displayed Versus Stored Value
- 10.6. Adding a Label
- 10.7. Displaying Value Increments
- 10.8. Changing the Size of the Scale
- 10.9. Options You'll Probably Never Need
- 10.10. Configuring a Scale
- 10.11. Getting the Value of a Scale
- 10.12. Setting the Value of a Scale
- 10.13. Determining Coordinates
- 10.14. Identifying Parts of a Scale
- 11. Frame, MainWindow,and Toplevel Widgets
- 11.1. Creating a Frame
- 11.2. Creating a Toplevel Widget
- 11.3. Options
- 11.3.1. Frame-Specific Options
- 11.3.2. Toplevel-Specific Options
- 11.3.3. Viewing a Frame
- 11.3.4. Adding a Label to a Frame
- 11.3.5. Frames Aren't Interactive
- 11.3.6. Colormap Complications
- 11.3.7. The Magical Class Option
- 11.4. Frame Methods
- 11.5. Toplevel Methods
- 11.5.1. Sizing a Toplevel
- 11.5.2. Maximum Size
- 11.5.3. Minimum Size
- 11.5.4. Limiting Resizing
- 11.5.5. Using a Size Aspect
- 11.5.6. Setting the Title
- 11.5.7. Showing the Toplevel
- 11.5.8. Withdrawing the Toplevel
- 11.5.9. Iconifying the Toplevel
- 11.5.10. Specifying the Icon Bitmap
- 11.5.11. Specifying the Icon Mask
- 11.5.12. Setting the Name of the Icon
- 11.5.13. Setting the Icon Position
- 11.5.14. Using a Window Instead of an Icon
- 11.5.15. Determining the State
- 11.5.16. Assigning a Client Name
- 11.5.17. Window Properties
- 11.5.18. The Colormap Property
- 11.5.19. The Command Property
- 11.5.20. The Focus Model
- 11.5.21. Getting a Widget's Window ID
- 11.5.22. The Application Grid
- 11.5.23. Being the Leader
- 11.5.24. Removing Decorations
- 11.5.25. Who Placed the Window?
- 11.5.26. Who Sized It?
- 11.5.27. Transient Windows
- 11.6. Creating Multiple MainWindows
- 11.7. Putting Two MainWindows to Work
- 12. The Menu System
- 12.1. Menu System Components
- 12.1.1. Menus and Menu Items
- 12.1.2. Menu Indexes
- 12.1.3. Manipulating Menus
- 12.1.4. Manipulating Menu Items
- 12.1.5. Menubars
- 12.1.6. Menu Options
- 12.2. Menubars and Pulldown Menus
- 12.2.1. Menubars the Clunky, Casual, Old-Fashioned Way
- 12.2.2. Menubars the Slick, Sophisticated, New-Fashioned Way
- 12.3. The Win32 System Menu Item
- 12.4. Classical Menubars
- 12.4.1. Menubutton Options
- 12.4.2. Button-Only Options
- 12.5. Popup Menus
- 12.5.1. The post and Post Methods
- 12.5.2. The Popup Method
- 12.5.2.1. Popup examples
- 12.6. Option Menus
- 12.6.1. Tk::Optionmenu
- 12.6.2. A Native Option Menu
- 12.7. Menu Virtual Events
- 12.8. Pie Menus
- 12.8.1. Fitts' Law
- 12.1. Menu System Components
- 13. Miscellaneous Perl/Tk Methods
- 13.1. Managing Widgets with configure and cget
- 13.1.1. The configure Method
- 13.1.2. The cget Method
- 13.2. Building a Family Tree
- 13.2.1. Widget's Children
- 13.2.2. Name of a Widget
- 13.2.3. Parent of a Widget
- 13.2.4. The Widget's Toplevel
- 13.2.5. Widget's Manager
- 13.2.6. The Widget's class
- 13.3. Widget's ID
- 13.3.1. Widget's PathName From Its X11 ID
- 13.4. Color-Related Methods
- 13.4.1. Is the Colormap Full?
- 13.4.2. Cell Count
- 13.4.3. Color Depth
- 13.4.4. Translate to RGB Value
- 13.4.5. Setting Colors
- 13.4.6. Predefined Color Scheme
- 13.5. The Application's Name
- 13.6. Widget Existence
- 13.7. Is the Widget Mapped?
- 13.8. Converting Screen Distances
- 13.9. Size of Widget
- 13.9.1. Widget's Geometry
- 13.9.2. Requested Height
- 13.9.3. Requested Width
- 13.9.4. Actual Width
- 13.9.5. Actual Height
- 13.10. Widget Position
- 13.10.1. Position Relative to the Root Window
- 13.10.2. Coordinates Relative to the Parent
- 13.10.3. Coordinates Relative to the Root Window
- 13.10.4. Virtual Desktop Coordinates
- 13.10.5. Cursor Coordinates Relative to the Desktop
- 13.11. Screen Information
- 13.11.1. Screen Name
- 13.11.2. Screen Height and Width
- 13.11.3. Cell Count
- 13.11.4. Screen Depth
- 13.11.5. Color Type
- 13.11.6. Server Type
- 13.11.7. Is the Widget Viewable?
- 13.12. Atom Methods
- 13.13. Ringing a Bell
- 13.14. Clipboard and Selection Methods
- 13.14.1. Clipboard Methods
- 13.14.2. Selection Methods
- 13.14.2.1. Clearing the selection
- 13.14.2.2. Getting the selection
- 13.14.2.3. Assigning a callback
- 13.14.2.4. Determining the owner
- 13.14.2.5. Setting the owner
- 13.14.3. Exporting the Selection to the Outside World
- 13.15. Destroying a Widget
- 13.16. Focus Methods
- 13.16.1. Keyboard Traversal
- 13.16.1.1. Tabbing between widgets
- 13.16.1.2. Default widget bindings
- 13.16.1.3. Menu Traversal
- 13.16.1. Keyboard Traversal
- 13.17. Grab Methods
- 13.18. Marking a Widget Busy and Unbusy
- 13.19. Widget Mapping and Layering
- 13.20. Interapplication Communication
- 13.21. Waiting for Events to Happen
- 13.21.1. File Events
- 13.22. Time Delays
- 13.23. Parsing Command-Line Options
- 13.24. Really Miscellaneous Methods
- 13.1. Managing Widgets with configure and cget
- 14. Creating Custom Widgets in Pure Perl/Tk
- 14.1. A Mega-Widget Quick-Start
- 14.2. The Perl/Tk Class Hierarchy
- 14.3. Mega-Widget Implementation Details
- 14.3.1. Tk::Widget::new, the Real Perl/Tk Widget Constructor
- 14.3.2. Subroutine ClassInit
- 14.3.3. Subroutine CreateArgs
- 14.3.4. Subroutine SetBindtags
- 14.3.5. Subroutine Populate
- 14.3.6. Subroutine ConfigSpecs
- 14.3.6.1. ConfigSpecs Examples
- 14.3.7. Subroutine Delegates
- 14.3.8. Other Useful Methods
- 14.3.8.1. Subroutine Advertise
- 14.3.8.2. Subroutine Callback
- 14.3.8.3. Subroutine Component
- 14.3.8.4. Subroutine Descendants
- 14.3.8.5. Subroutine Subwidget
- 14.3.8.6. Subroutine Walk
- 14.3.9. Mega-Widget Instance Variables
- 14.4. Composite Mega-Widgets
- 14.4.1. Tk::Thermometer
- 14.5. Derived Mega-Widgets
- 14.5.1. Tk::NavListbox
- 14.5.2. Tk::CanvasPlot
- 14.5.3. Tk::LCD
- 14.6. Packaging a Mega-Widget for Public Distribution
- 14.6.1. Packaging for CPAN
- 14.6.2. Packaging for PPM
- 15. Anatomy of the MainLoop
- 15.1. Creating a Callback
- 15.1.1. Callbacks and Closures
- 15.2. Binding to Events
- 15.2.1. Event Descriptor Syntax
- 15.2.1.1. Event descriptor modifiers
- 15.2.1.2. Event descriptor types
- 15.2.2. The Event Structure
- 15.2.2.1. The exporter tag :variables
- 15.2.2.2. Event information methods
- 15.2.3. Widget Class Bindings
- 15.2.4. Widget Instance Bindings
- 15.2.5. Binding to a MouseWheel Event
- 15.2.6. Canvas Bindings
- 15.2.1. Event Descriptor Syntax
- 15.3. The bindtags Command
- 15.3.1. How Might We Use bindtags?
- 15.3.2. bindDumpDump Lots of Binding Information
- 15.4. Executing Nonblocking System Commands
- 15.4.1. fileevent Syntax
- 15.4.2. Tk::ExecuteCommand
- 15.4.3. An MPG Playertkmpg123
- 15.5. Tracing Perl/Tk Variables
- 15.5.1. Tie::Watch
- 15.6. Nonblocking Wait Activities
- 15.6.1. Tk::waitVariableX
- 15.7. Splash Screens
- 15.7.1. Tk::Splashscreen
- 15.8. Synthesizing Virtual Events
- 15.9. Coexisting with Other GUI Main Loops
- 15.9.1. Embedding OpenGL in a Perl/Tk Window
- 15.9.2. Flying the Enterprise
- 15.1. Creating a Callback
- 16. User Customization
- 16.1. Using the Command Line
- 16.1.1. Colors, Fonts, and Titles
- 16.1.2. Initial MainWindow Placement
- 16.1.3. Choosing a Display
- 16.1.4. Option Database Lookups
- 16.1.5. Synchronizing Window Messages
- 16.2. Using the Option Database
- 16.2.1. Manipulating Resources with option* Methods
- 16.2.2. Manipulating Resources with Tk::CmdLine Subroutines
- 16.1. Using the Command Line
- 17. Images and Animations
- 17.1. An Overview of Perl/Tk Image Types
- 17.2. Methods Common to All Image Types
- 17.3. Bitmap Primitives
- 17.4. DefineBitmap
- 17.5. The Bitmap Image Type
- 17.5.1. Cool Tricks with an Empty Bitmap
- 17.5.1.1. An invisible cursor
- 17.5.1.2. Filling a transparent Canvas item
- 17.5.1. Cool Tricks with an Empty Bitmap
- 17.6. The Pixmap Image Type
- 17.7. The Photo Image Type
- 17.7.1. Creating a Color Palette with the put Method
- 17.7.2. Using put to Create a Progress Bar with a 3D Look
- 17.7.3. Capturing a Window with Tk::WinPhoto
- 17.7.3.1. What you see is not always what you get
- 17.7.4. Tk::Thumbnail
- 17.8. The Compound Image Type
- 17.9. Tk::Animation
- 17.10. tknekoAnimating the Neko on a Canvas
- 17.11. Tile and Transparent Images
- 17.12. Miscellaneous Image Methods
- 17.13. Simple Photo Rotations
- 18. A Tk Interface Extension Tour
- 18.1. Display Items
- 18.2. Item Styles
- 18.2.1. Item Style Methods
- 18.3. The TList Widget
- 18.3.1. TList Indexes and Methods
- 18.4. The HList Family of Widgets
- 18.4.1. Using Indicators with HList
- 18.4.2. HList Methods
- 18.4.3. The Tree Widget
- 18.4.4. Tree Methods
- 18.4.5. The DirTree Widget
- 18.4.6. Adding a Directory
- 18.5. Tix Images
- 19. Interprocess Communicationwith Pipes and Sockets
- 19.1. Handling Unsolicited Media Changes
- 19.1.1. The Media Change Client, mediachangec
- 19.1.2. The Media Change Server, mediachanged
- 19.2. IPADM Design Considerations
- 19.3. The Perl/Tk IPADM Client, ipadm
- 19.3.1. Creating the Hypertext User Interface
- 19.3.2. The Subnet Widget Edits a Subnet Description
- 19.3.3. Starting the IPADM Helper Task
- 19.3.4. fileevent Keeps ipadm Happy
- 19.4. The IPADM Helper, ipadmh
- 19.5. The IPADM Daemon, ipadmd
- 19.5.1. The Forking Server
- 19.5.2. IPADM Message Handling
- 19.5.3. Locking an SDB File
- 19.5.4. Updating the DHCP and DNS Configuration Files
- 19.5.5. What About Security?
- 19.6. Polling Win32 Sockets
- 19.1. Handling Unsolicited Media Changes
- 20. IPC with send
- 20.1. Security and Inter-Language Considerations
- 20.1.1. Application Names
- 20.1.2. Tk::Receive
- 20.2. Computing with Parallel Message Passing
- 20.2.1. The Message Passing Protocol
- 20.2.2. Tcl/Tk Slave Processor Code
- 20.2.3. Tcl/Tk Master Processor Code
- 20.3. TclRobots
- 20.3.1. TclRobots.pm, the Perl Interface to TclRobots
- 20.3.1.1. Tk::Receive handles tclrobots to Perl communications
- 20.3.1.2. The RCP API handles Perl to tclrobots communications
- 20.3.2. Robot Control Programs
- 20.3.1. TclRobots.pm, the Perl Interface to TclRobots
- 20.1. Security and Inter-Language Considerations
- 21. C Widget Internals
- 21.1. The Tk::Square Widget
- 21.1.1. Tcl/Tk Example
- 21.1.2. Overview of the Perl/Tk Distribution
- 21.1.3. Layout of a Typical C Widget
- 21.1.3.1. Tk::Square instance structure
- 21.1.3.2. Tk::Square configuration specifications
- 21.1.3.3. Tk::Square instance constructor
- 21.1.3.4. Tk::Square method processors
- 21.1.3.5. Tk::Square option configurator
- 21.1.3.6. Tk::Square event handler
- 21.1.3.7. Tk::Square drawing handler
- 21.1.3.8. Tk::Square destructor
- 21.2. Interfacing tkSquare.c with Perl/Tk
- 21.2.1. Makefile.PL
- 21.2.2. Square.xs
- 21.2.3. Square.pm
- 21.2.4. pTk/Makefile.PL
- 21.3. Building and Testing Tk::Square
- 21.3.1. t/square_demo.t
- 21.4. How Not to Port Tk::Square
- 21.1. The Tk::Square Widget
- 22. Perl/Tk and the Web
- 22.1. Library for WWW Access in Perl
- 22.1.1. LWP::Simple, the Easiest Way to the Web
- 22.1.2. Fetching Web Content with LWP::UserAgent
- 22.1.3. lwp-request and fileevent Rule
- 22.1.4. The Recipe for Displaying Web Images
- 22.1.5. Win32 Considerations
- 22.1.5.1. fork and local Win32 sockets
- 22.1.5.2. fork and LWP::UserAgent
- 22.1.5.3. Win32::Process and shared memory
- 22.1.6. Tidying an Ugly Mess
- 22.2. The PerlPlus Browser Plug-in
- 22.2.1. Embedding Perl/Tk in Other Windows
- 22.2.2. Embedded Versus Full-Screen Mode
- 22.2.3. How You Can Contribute to the PerlPlus Plug-in Project
- 22.1. Library for WWW Access in Perl
- 23. Plethora of pTk Potpourri
- 23.1. pTk Special Variables and Exporter Symbols
- 23.1.1. Global Variables
- 23.1.2. Symbols Exported by Default
- 23.1.3. Optionally Exported Symbols
- 23.1.4. Exporter Tags
- 23.2. Manipulating the Cursor
- 23.2.1. Creating Your Own Custom Cursor Shape
- 23.3. Dialog Boxes
- 23.3.1. The Dialog Widget
- 23.3.2. The messageBox Method
- 23.3.3. The DialogBox Widget
- 23.3.4. Using ErrorDialog
- 23.3.5. chooseColor Dialog
- 23.3.6. getOpenFile and getSaveFile Dialogs
- 23.4. The Adjuster Widget
- 23.5. The Balloon Widget
- 23.6. The BrowseEntry Widget
- 23.7. The LabFrame Widget
- 23.7.1. LabFrame Options
- 23.8. The NoteBook Widget
- 23.8.1. Creating Pages
- 23.8.2. WordCount Example Using a NoteBook
- 23.8.3. NoteBook Limitations
- 23.9. The Pane Widget
- 23.9.1. Pane Options
- 23.10. The ProgressBar Widget
- 23.10.1. ProgressBar Options
- 23.11. Widgets Not in the Perl/Tk Distribution
- 23.1. pTk Special Variables and Exporter Symbols
- A. Installing Perl/Tk
- A.1. Installing Perl/Tk for Unix
- A.2. Installing Perl/Tk for Win32
- B. Options and Default Valuesfor Each Widget
- B.1. Adjuster
- B.2. Balloon
- B.3. Bitmap
- B.4. BrowseEntry
- B.5. Button
- B.6. Canvas
- B.7. Checkbutton
- B.8. ColorEditor
- B.9. Dialog
- B.10. DirTree
- B.11. Entry
- B.12. ErrorDialog
- B.13. FileSelect
- B.14. Frame
- B.15. HList
- B.16. Label
- B.17. LabEntry
- B.18. LabFrame
- B.19. Listbox
- B.20. MainWindow
- B.21. Menu
- B.22. Menubutton
- B.23. Message
- B.24. NoteBook
- B.25. Optionmenu
- B.26. Pane
- B.27. Photo
- B.28. ProgressBar
- B.29. Radiobutton
- B.30. ROText
- B.31. Scale
- B.32. Scrollbar
- B.33. Table
- B.34. Text
- B.35. TextUndo
- B.36. Tiler
- B.37. TList
- B.38. Toplevel
- B.39. Tree
- C. Complete Program Listings
- C.1. Tk::CollapsableFrame
- C.2. Tk::MacCopy
- C.3. Tk::ExecuteCommand
- C.4. Proc::Killfam
- C.5. tkmpg123
- C.6. Tk::Trace
- C.7. tkhp16c
- C.8. Tk::MacProgressBar
- C.9. TclRobots.pm
- C.10. Robot Control Program complex.ptr
- C.11. clock-bezier.ppl
- C.12. tkhanoi.ppl
- Index
- About the Authors
- Colophon
- SPECIAL OFFER: Upgrade this ebook with OReilly