1Prima::Application(3) User Contributed Perl DocumentationPrima::Application(3)
2
3
4
6 Prima::Application - root of widget objects hierarchy
7
9 Prima::Application class serves as a hierarchy root for all objects
10 with child-owner relationship. All toolkit objects, existing with non-
11 null owner property, belong by their top-level parental relationship to
12 Prima::Application object. There can be only one instance of
13 Prima::Application class at a time.
14
16 use Prima;
17 use Prima::Application;
18
19 or
20
21 use Prima qw(Application);
22
23 Prima::MainWindow-> create();
24
25 run Prima;
26
28 Prima::Application class, and its only instance are treated specially
29 throughout the toolkit. The object instance is contained in
30
31 $::application
32
33 scalar, defined in Prima.pm module. The application instance must be
34 created whenever widget and window, or event loop functionality is
35 desired. Usually
36
37 use Prima::Application;
38
39 code is enough, but $::application can also be assigned explicitly. The
40 'use' syntax has advantage as more resistant to eventual changes in the
41 toolkit design. It can also be used in conjunction with custom
42 parameters hash, alike the general create() syntax:
43
44 use Prima::Application name => 'Test application', icon => $icon;
45
46 In addition to this functionality Prima::Application is also a wrapper
47 to a set of system functions, not directly related to object classes.
48 This functionality is generally explained in "API".
49
50 Inherited functionality
51 Prima::Application is a descendant of Prima::Widget, but it is designed
52 so because their functional outliers are closest to each other.
53 Prima::Application does not strictly conform ( in OO sense ) to any of
54 the built-in classes. It has methods copied from both Prima::Widget and
55 Prima::Window at one time, and the inherited Prima::Widget methods and
56 properties function differently. For example, "::origin", a property
57 from Prima::Widget, is also implemented in Prima::Application, but
58 returns always (0,0), an expected but not much usable result.
59 "::size", on the contrary, returns the extent of the screen in pixels.
60 There are few properties, inherited from Prima::Widget, which return
61 actual, but uninformative results, - "::origin" is one of those, but
62 same are "::buffered", "::clipOwner", "::enabled", "::growMode",
63 "::owner" and owner-inheritance properties, "::selectable", "::shape",
64 "::syncPaint", "::tabOrder", "::tabStop", "::transparent", "::visible".
65 To this group also belongs "::modalHorizon", Prima::Window class
66 property, but defined for consistency and returning always 1. Other
67 methods and properties, like "::size", that provide different
68 functionality are described in "API".
69
70 Global functionality
71 Prima::Application is a wrapper to functionality, that is not related
72 to one or another class clearly. A notable example, paint mode, which
73 is derived from Prima::Drawable class, allows painting on the screen,
74 overwriting the graphic information created by the other programs.
75 Although being subject to begin_paint()/end_paint() brackets, this
76 functionality can not be attached to a class-shared API, an therefore
77 is considered global. All such functionality is gathered in the
78 Prima::Application class.
79
80 These topics enumerated below, related to the global scope, but
81 occupying more than one method or property - such functions described
82 in "API".
83
84 Painting
85 As stated above, Prima::Application provides interface to the on-
86 screen painting. This mode is triggered by
87 begin_paint()/end_paint() methods pair, and the other pair,
88 begin_paint_info()/end_paint_info() triggers the information mode.
89 This three-state paint functionality is more thoroughly described
90 in Prima::Drawable.
91
92 The painting on the screen surfaces under certain environments
93 (XQuartz, XWayland) is either silently ignored or results in an
94 error. There, "begin_paint" will return a false value
95 ("begin_paint_info" though returns true).
96
97 Hint
98 $::application hosts a special Prima::HintWidget class object,
99 accessible via "get_hint_widget()", but with color and font
100 functions aliased ( "::hintColor", "::hintBackColor", "::hintFont"
101 ).
102
103 This widget serves as a hint label, floating over widgets if the
104 mouse pointer hovers longer than "::hintPause" milliseconds.
105
106 Prima::Application internally manages all hint functionality. The
107 hint widget itself, however, can be replaced before application
108 object is created, using "::hintClass" create-only property.
109
110 Printer
111 Result of get_printer method points to an automatically created
112 printer object, responsible for the system-driven printing.
113 Depending on the operating system, it is either Prima::Printer, if
114 the system provides GUI printing capabilities, or generic
115 Prima::PS::Printer, the PostScript document interface.
116
117 See Prima::Printer for details.
118
119 Clipboard
120 $::application hosts set of Prima::Clipboard objects, created
121 automatically to reflect the system-provided clipboard IPC
122 functionality. Their number depends on the system, - under X11
123 environment there is three clipboard objects, and only one under
124 Win32.
125
126 These are no methods to access these clipboard objects, except
127 fetch() ( or, the indirect name calling ) - the clipboard objects
128 are named after the system clipboard names, which are returned by
129 Prima::Clipboard::get_standard_clipboards.
130
131 The default clipboard is named Clipboard, and is accessible via
132
133 my $clipboard = $::application-> Clipboard;
134
135 code.
136
137 See Prima::Clipboard for details.
138
139 Help subsystem
140 The toolkit has a built-in help viewer, that understands perl's
141 native POD ( plain old documentation ) format. Whereas the viewer
142 functionality itself is part of the toolkit, and resides in
143 "Prima::HelpViewer" module, any custom help viewing module can be
144 assigned. Create-only "Prima::Application" properties "::helpClass"
145 and "::helpModule" can be used to set these options.
146
147 "Prima::Application" provides two methods for communicating with
148 the help viewer window: "open_help()" opens a selected topic in the
149 help window, and "close_help()" closes the window.
150
151 System-dependent information
152 A complex program will need eventually more information than the
153 toolkit provides. Or, knowing the toolkit boundaries in some
154 platforms, the program changes its behavior accordingly. Both these
155 topics are facilitated by extra system information, returned by
156 Prima::Application methods. "get_system_value" returns a system
157 value for one of "sv::XXX" constants, so the program can read the
158 system-specific information. As well as "get_system_info" method,
159 that returns the short description of the system, it is the
160 portable call. To the contrary, "sys_action" method is a wrapper
161 to system-dependent functionality, called in non-portable way. This
162 method is never used within the toolkit, and its usage is
163 discouraged, primarily because its options do not serve the toolkit
164 design, are subject to changes and cannot be relied upon.
165
167 Properties
168 autoClose BOOLEAN
169 If set to 1, issues "close()" after the last top-level window is
170 destroyed. Does not influence anything if set to 0.
171
172 This feature is designed to help with general 'one main window'
173 application layouts.
174
175 Default value: 0
176
177 icon OBJECT
178 Holds the icon object, associated with the application. If
179 "undef", a system-provided default icon is assumed. Prima::Window
180 object instances inherit the application icon by default.
181
182 insertMode BOOLEAN
183 A system boolean flag, showing whether text widgets through the
184 system should insert ( 1 ) or overwrite ( 0 ) text on user input.
185 Not all systems provide the global state of the flag.
186
187 helpClass STRING
188 Specifies a class of object, used as a help viewing package. The
189 default value is Prima::HelpViewer.
190
191 Run-time changes to the property do not affect the help subsystem
192 until "close_help" call is made.
193
194 helpModule STRING
195 Specifies a perl module, loaded indirectly when a help viewing call
196 is made via "open_help". Used when "::helpClass" property is
197 overridden and the new class is contained in a third-party module.
198
199 Run-time changes to the property do not affect the help subsystem
200 until "close_help" call is made.
201
202 hintClass STRING
203 Create-only property.
204
205 Specifies a class of widget, used as the hint label.
206
207 Default value: Prima::HintWidget
208
209 hintColor COLOR
210 An alias to foreground color property for the hint label widget.
211
212 hintBackColor COLOR
213 An alias to background color property for the hint label widget.
214
215 hintFont %FONT
216 An alias to font property for the hint label widget.
217
218 hintPause TIMEOUT
219 Selects the timeout in milliseconds before the hint label is shown
220 when the mouse pointer hovers over a widget.
221
222 language STRING
223 By default contains user interface language, deduced either from
224 $ENV{LANG} or GUI default. When changed, updates "textDirection"
225 propertly.
226
227 See also: "get_system_info".
228
229 modalHorizon BOOLEAN
230 A read-only property. Used as a landmark for the lowest-level modal
231 horizon. Always returns 1.
232
233 palette [ @PALETTE ]
234 Used only within paint and information modes. Selects solid colors
235 in a system palette, as many as possible. PALETTE is an array of
236 integer triplets, where each is red, green, and blue component,
237 with intensity range from 0 to 255.
238
239 printerClass STRING
240 Create-only property.
241
242 Specifies a class of object, used as a printer. The default value
243 is system-dependent, but is either "Prima::Printer" or
244 "Prima::PS::Printer".
245
246 printerModule STRING
247 Create-only property.
248
249 Specifies a perl module, loaded indirectly before a printer object
250 of "::printerClass" class is created. Used when "::printerClass"
251 property is overridden and the new class is contained in a third-
252 party module.
253
254 pointerVisible BOOLEAN
255 Governs the system pointer visibility. If 0, hides the pointer so
256 it is not visible in all system windows. Therefore this property
257 usage must be considered with care.
258
259 size WIDTH, HEIGHT
260 A read-only property.
261
262 Returns two integers, width and height of the screen.
263
264 showHint BOOLEAN
265 If 1, the toolkit is allowed to show the hint label over a widget.
266 If 0, the display of the hint is forbidden. In addition to
267 functionality of "::showHint" property in Prima::Widget,
268 Prima::Application::showHint is another layer of hint visibility
269 control - if it is 0, all hint actions are disabled, disregarding
270 "::showHint" value in widgets.
271
272 textDirection BOOLEAN
273 Contains preferred text direction, initially calculated from the
274 preferred interface language. If 0 ( default ), the preferred text
275 direction is left-to-right (LTR), otherwise right-to-left (RTL),
276 f.ex. for arabic and hebrew languages.
277
278 The value is used as a default when shaping text and setting widget
279 input direction.
280
281 uiScaling FLOAT
282 The property contains an advisory multiplier factor, useful for UI
283 elements that have a fixed pixel value, but that would like to be
284 represented in a useful manner when the display resolution is too
285 high (on modern High-DPI displays) or too low (on ancient
286 monitors).
287
288 By default, it acquires the system display resolution, and sets the
289 scaling factor so that when the DPI is 96 it is 1.0, 192 it is 2.0,
290 etc. The increase step is 0.25, so that bitmaps may look not that
291 distorted. However, when the value is manually set, there is no
292 such step, any value can be set.
293
294 See also: "Stress" in Prima.
295
296 wantUnicodeInput BOOLEAN
297 Selects if the system is allowed to generate key codes in unicode.
298 Returns the effective state of the unicode input flag, which cannot
299 be changed if perl or operating system do not support UTF8.
300
301 If 1, "Prima::Clipboard::text" property may return UTF8 text from
302 system clipboards is available.
303
304 Default value: 1
305
306 Events
307 CopyImage $CLIPBOARD, $IMAGE
308 The notification stores $IMAGE in clipboard.
309
310 CopyText $CLIPBOARD, $TEXT
311 The notification stores $TEXT in clipboard.
312
313 Idle
314 Called when the event loop handled all pending events, and is about
315 to sleep waiting for more.
316
317 PasteImage $CLIPBOARD, $$IMAGE_REF
318 The notification queries $CLIPBOARD for image content and stores in
319 $$IMAGE_REF. Default action is that 'Image' format is queried. On
320 unix, encoded formats 'image/bmp', 'image/png' etc are queried if
321 the default 'Image' is not found.
322
323 The "PasteImage" mechanism is devised to read images from clipboard
324 in GTK environment.
325
326 PasteText $CLIPBOARD, $$TEXT_REF
327 The notification queries $CLIPBOARD for text content and stores in
328 $$TEXT_REF. Default action is that 'Text' format is queried if
329 "wantUnicodeInput" is unset. Otherwise, 'UTF8' format is queried
330 beforehand.
331
332 The "PasteText" mechanism is devised to ease defining text
333 unicode/ascii conversion between clipboard and standard widgets, in
334 a standard way.
335
336 Methods
337 add_startup_notification @CALLBACK
338 CALLBACK is an array of anonymous subs, which is executed when
339 Prima::Application object is created. If the application object is
340 already created during the call, CALLBACKs called immediately.
341
342 Useful for add-on packages initialization.
343
344 begin_paint
345 Enters the enabled ( active paint ) state, returns success flag.
346 Once the object is in enabled state, painting and drawing methods
347 can perform write operations on the whole screen.
348
349 begin_paint_info
350 Enters the information state, returns success flag. The object
351 information state is same as enabled state ( see "begin_paint()"),
352 except that painting and drawing methods are not permitted to
353 change the screen.
354
355 close
356 Issues a system termination call, resulting in calling "close" for
357 all top-level windows. The call can be interrupted by these, and
358 thus canceled. If not canceled, stops the application event loop.
359
360 close_help
361 Closes the help viewer window.
362
363 end_paint
364 Quits the enabled state and returns application object to the
365 normal state.
366
367 end_paint_info
368 Quits the information state and returns application object to the
369 normal state.
370
371 font_encodings
372 Returns array of encodings, represented by strings, that are
373 recognized by the system and available for at least one font. Each
374 system provides different sets of encoding strings; the font
375 encodings are not portable.
376
377 fonts NAME = '', ENCODING = ''
378 Returns hash of font hashes ( see "Fonts" in Prima::Drawable )
379 describing fonts of NAME font family and of ENCODING. If NAME is ''
380 or "undef", returns one fonts hash for each of the font families
381 that match the ENCODING string. If ENCODING is '' or "undef", no
382 encoding match is performed. If ENCODING is not valid ( not
383 present in "font_encodings" result), it is treated as if it was ''
384 or "undef".
385
386 In the special case, when both NAME and ENCODING are '' or "undef",
387 each font metric hash contains element "encodings", that points to
388 array of the font encodings, available for the fonts of NAME font
389 family.
390
391 get_active_window
392 Returns object reference to a currently active window, if any, that
393 belongs to the program. If no such window exists, "undef" is
394 returned.
395
396 The exact definition of 'active window' is system-dependent, but it
397 is generally believed that an active window is the one that has
398 keyboard focus on one of its children widgets.
399
400 get_caption_font
401 Returns a title font, that the system uses to draw top-level window
402 captions. The method can be called with a class string instead of
403 an object instance.
404
405 get_default_cursor_width
406 Returns width of the system cursor in pixels. The method can be
407 called with a class string instead of an object instance.
408
409 get_default_font
410 Returns the default system font. The method can be called with a
411 class string instead of an object instance.
412
413 get_default_scrollbar_metrics
414 Returns dimensions of the system scrollbars - width of the standard
415 vertical scrollbar and height of the standard horizon scrollbar.
416 The method can be called with a class string instead of an object
417 instance.
418
419 get_dnd_clipboard
420 Returns the predefined special clipboard used as a proxy for drag
421 and drop interactions.
422
423 See also: "Widget/Drag and drop", "Clipboard/is_dnd".
424
425 get_default_window_borders BORDER_STYLE = bs::Sizeable
426 Returns width and height of standard system window border
427 decorations for one of "bs::XXX" constants. The method can be
428 called with a class string instead of an object instance.
429
430 get_focused_widget
431 Returns object reference to a currently focused widget, if any,
432 that belongs to the program. If no such widget exists, "undef" is
433 returned.
434
435 get_fullscreen_image
436 Syntax sugar for grabbing whole screen as in
437
438 $::application->get_image( 0, 0, $::application->size)
439
440 (MacOSX/XQuartz: get_image() does not grab all screen bits, but
441 "get_fullscreen_image" does (given Prima is compiled with Cocoa
442 library)).
443
444 get_hint_widget
445 Returns the hint label widget, attached automatically to
446 Prima::Application object during startup. The widget is of
447 "::hintClass" class, Prima::HintWidget by default.
448
449 get_image X_OFFSET, Y_OFFSET, WIDTH, HEIGHT
450 Returns Prima::Image object with WIDTH and HEIGHT dimensions filled
451 with graphic content of the screen, copied from X_OFFSET and
452 Y_OFFSET coordinates. If WIDTH and HEIGHT extend beyond the screen
453 dimensions, they are adjusted. If the offsets are outside screen
454 boundaries, or WIDTH and HEIGHT are zero or negative, "undef" is
455 returned.
456
457 Note: When running on MacOSX under XQuartz, the latter does not
458 give access to the whole screen, so the function will not be able
459 to grab top-level menu bar. This problem is addressed in
460 "get_fullscreen_image".
461
462 get_indents
463 Returns 4 integers that corresponds to extensions of eventual
464 desktop decorations that the windowing system may present on the
465 left, bottom, right, and top edges of the screen. For example, for
466 win32 this reports the size of the part of the scraan that windows
467 taskbar may occupies, if any.
468
469 get_printer
470 Returns the printer object, attached automatically to
471 Prima::Application object. The object is of "::printerClass" class.
472
473 get_message_font
474 Returns the font the system uses to draw the message text. The
475 method can be called with a class string instead of an object
476 instance.
477
478 get_modal_window MODALITY_TYPE = mt::Exclusive, TOPMOST = 1
479 Returns the modal window, that resides on an end of a modality
480 chain. MODALITY_TYPE selects the chain, and can be either
481 "mt::Exclusive" or "mt::Shared". TOPMOST is a boolean flag,
482 selecting the lookup direction; if it is 1, the 'topmost' window is
483 returned, if 0, the 'lowest' one ( in a simple case when window A
484 is made modal (executed) after modal window B, the A window is the
485 'topmost' one ).
486
487 If a chain is empty "undef" is returned. In case when a chain
488 consists of just one window, TOPMOST value is apparently
489 irrelevant.
490
491 get_monitor_rects
492 Returns set of rects in format [X,Y,WIDTH,HEIGHT] identifying
493 monitor configurations. Currently works under X11 only.
494
495 get_scroll_rate
496 Returns two integer values of two system-specific scrolling
497 timeouts. The first is the initial timeout, that is applied when
498 the user drags the mouse from a scrollable widget ( a text field,
499 for example ), and the widget is about to scroll, but the actual
500 scroll is performed after the timeout is expired. The second is the
501 repetitive timeout, - if the dragging condition did not change, the
502 scrolling performs automatically after this timeout. The timeout
503 values are in milliseconds.
504
505 get_system_info
506 Returns a hash with information about the system. The hash result
507 contains the following keys:
508
509 apc One of "apc::XXX" constants, reflecting the platform.
510 Currently, the list of the supported platforms is:
511
512 apc::Win32
513 apc::Unix
514
515 gui One of "gui::XXX" constants, reflecting the graphic user
516 interface used in the system:
517
518 gui::Default
519 gui::PM
520 gui::Windows
521 gui::XLib
522 gui::GTK
523
524 guiDescription
525 Description of graphic user interface, returned as an arbitrary
526 string.
527
528 guiLanguage
529 Preferred language of the interface, returned as an ISO 639
530 code.
531
532 system
533 An arbitrary string, representing the operating system
534 software.
535
536 release
537 An arbitrary string, reflecting the OS version information.
538
539 vendor
540 The OS vendor string
541
542 architecture
543 The machine architecture string
544
545 The method can be called with a class string instead of an object
546 instance.
547
548 get_system_value
549 Returns the system integer value, associated with one of "sv::XXX"
550 constants. The constants are:
551
552 sv::YMenu - height of menu bar in top-level windows
553 sv::YTitleBar - height of title bar in top-level windows
554 sv::XIcon - width and height of main icon dimensions,
555 sv::YIcon acceptable by the system
556 sv::XSmallIcon - width and height of alternate icon dimensions,
557 sv::YSmallIcon acceptable by the system
558 sv::XPointer - width and height of mouse pointer icon
559 sv::YPointer acceptable by the system
560 sv::XScrollbar - width of the default vertical scrollbar
561 sv::YScrollbar - height of the default horizontal scrollbar
562 ( see get_default_scrollbar_metrics() )
563 sv::XCursor - width of the system cursor
564 ( see get_default_cursor_width() )
565 sv::AutoScrollFirst - the initial and the repetitive
566 sv::AutoScrollNext scroll timeouts
567 ( see get_scroll_rate() )
568 sv::InsertMode - the system insert mode
569 ( see insertMode )
570 sv::XbsNone - widths and heights of the top-level window
571 sv::YbsNone decorations, correspondingly, with borderStyle
572 sv::XbsSizeable bs::None, bs::Sizeable, bs::Single, and
573 sv::YbsSizeable bs::Dialog.
574 sv::XbsSingle ( see get_default_window_borders() )
575 sv::YbsSingle
576 sv::XbsDialog
577 sv::YbsDialog
578 sv::MousePresent - 1 if the mouse is present, 0 otherwise
579 sv::MouseButtons - number of the mouse buttons
580 sv::WheelPresent - 1 if the mouse wheel is present, 0 otherwise
581 sv::SubmenuDelay - timeout ( in ms ) before a sub-menu shows on
582 an implicit selection
583 sv::FullDrag - 1 if the top-level windows are dragged dynamically,
584 0 - with marquee mode
585 sv::DblClickDelay - mouse double-click timeout in milliseconds
586 sv::ShapeExtension - 1 if Prima::Widget::shape functionality is supported,
587 0 otherwise
588 sv::ColorPointer - 1 if system accepts color pointer icons.
589 sv::CanUTF8_Input - 1 if system can generate key codes in unicode
590 sv::CanUTF8_Output - 1 if system can output utf8 text
591 sv::CompositeDisplay - 1 if system uses double-buffering and alpha composition for the desktop,
592 0 if it doesn't, -1 if unknown
593 sv::LayeredWidgets - 1 if system supports layering
594 sv::DWM - 1 if system supports DWM API
595 sv::FixedPointerSize - 0 if system doesn't support arbitrary sized pointers and will resize custom icons to the system size
596 sv::MenuCheckSize - width and height of default menu check icon
597 sv::FriBidi - 1 if Prima is compiled with libfribidi and full bidi unicode support is available
598
599 The method can be called with a class string instead of an object
600 instance.
601
602 get_widget_from_handle HANDLE
603 HANDLE is an integer value of a toolkit widget. It is usually
604 passed to the program by other IPC means, so it returns the
605 associated widget. If no widget is associated with HANDLE, "undef"
606 is returned.
607
608 get_widget_from_point X_OFFSET, Y_OFFSET
609 Returns the widget that occupies screen area under
610 (X_OFFSET,Y_OFFSET) coordinates. If no toolkit widget are found,
611 "undef" is returned.
612
613 go The main event loop. Called by
614
615 run Prima;
616
617 standard code. Returns when the program is about to terminate, or
618 if the exception was signaled. In the latter case, the loop can be
619 safely re-started.
620
621 lock
622 Effectively blocks the graphic output for all widgets. The output
623 can be restored with "unlock()".
624
625 load_font FONTNAME
626 Registers font resource in system-specific format. The resource is
627 freed after prgram ends.
628
629 Notes for win32: To add a font whose information comes from several
630 resource files, point FONTNAME to a string with the file names
631 separated by a "|" - for example, " abcxxxxx.pfm | abcxxxxx.pfb ".
632
633 Notes for unix: available only when Prima is compiled with
634 fontconfig and Xft .
635
636 Returns number of font resources added.
637
638 open_help TOPIC
639 Opens the help viewer window with TOPIC string in link POD format (
640 see perlpod ) - the string is treated as "manpage/section", where
641 'manpage' is the file with POD content and 'section' is the topic
642 inside the manpage.
643
644 sync
645 Synchronizes all pending requests where there are any. Is an
646 effective "XSync(false)" on X11, and is a no-op otherwise.
647
648 sys_action CALL
649 CALL is an arbitrary string of the system service name and the
650 parameters to it. This functionality is non-portable, and its
651 usage should be avoided. The system services provided are not
652 documented and subject to change. The actual services can be looked
653 in the toolkit source code under apc_system_action tag.
654
655 unlock
656 Unblocks the graphic output for all widgets, previously locked with
657 "lock()".
658
659 yield $wait_for_event=0
660 An event dispatcher, called from within the event loop. If the
661 event loop can be schematized, then in
662
663 while ( application not closed ) {
664 yield
665 }
666
667 draft yield() is the only function, called repeatedly within the
668 event loop. yield(0) call shouldn't be used to organize event
669 loops, but it can be employed to process stacked system events
670 explicitly, to increase responsiveness of a program, for example,
671 inside a long calculation cycle.
672
673 yield(1) though is adapted exactly for external implementation of
674 event loops; it does exactly the same as yeild(0), but if there are
675 no events, it sleeps until there comes at least one, processes it,
676 and then returns. The return value is 0 if the application doesn't
677 need more event processins, because of shutting down. The
678 corresponding code will be
679
680 while ( yield(1)) {
681 ...
682 }
683
684 but in turn, this call cannot be used for UI responsiveness inside
685 tight cycles.
686
687 The method can be called with a class string instead of an object
688 instance; however, the $::application object must be initialized.
689
691 Dmitry Karasik, <dmitry@karasik.eu.org>.
692
694 Prima, Prima::Object, Prima::Widget, Prima::Window
695
696
697
698perl v5.32.1 2021-01-27 Prima::Application(3)