Prima::Const(3)

πŸ“¦
version 1.74000 Β· 5 versions
, in opensuse-leap 16.0

πŸ’– Prima::Const πŸ’–

okay so this is the Prima::Const(3) page from the User Contributed Perl Documentation, and it's literally the master list of predefined constants. group-chat bestie energy: if you're touching Prima, you're gonna see these cuties everywhere πŸ’…


🌸 NAME 🌸

Prima::Const β€” predefined constants. periodt.


πŸ¦‹ DESCRIPTION πŸ¦‹

okay so Prima::Const and Prima::Classes are for a minimal set of perl modules needed for the toolkit. and because this module provides bindings for the core constants, it is required to be included in every Prima-related module and program β€” like, not optional, bestie πŸ’–

the constants are collected under the top-level package names, with no Prima:: prefix. yes, this violates the perl guidelines about package naming, however, it was considered way too inconvenient to prefix every constant with a Prima:: string. iconic decision, honestly.

this document describes all constants defined in the core. the constants are also described in the articles together with the corresponding methods and properties. for example, the nt constants are also described in the Flow in Prima::Object article β€” iykyk ✨


✨ API ✨

πŸŽ€ am:: β€” Prima::Icon auto masking πŸŽ€

also peep autoMasking in Prima::Image.

  • am::None β€” no mask update performed
  • am::MaskColor β€” mask update based on Prima::Icon::maskColor property
  • am::MaskIndex β€” mask update based on Prima::Icon::maskIndex property
  • am::Auto β€” mask update based on corner pixel values

🌈 apc:: β€” OS type 🌈

see get_system_info in Prima::Application.

  • apc::Win32
  • apc::Unix

🫢 bi:: β€” border icons 🫢

see borderIcons in Prima::Window.

  • bi::SystemMenu β€” the system menu button and/or close button ( usually with the icon )
  • bi::Minimize β€” minimize button
  • bi::Maximize β€” maximize/restore button
  • bi::TitleBar β€” the window title
  • bi::All β€” all of the above

πŸ’… bs:: β€” border styles πŸ’…

see borderStyle in Prima::Window.

  • bs::None β€” no border
  • bs::Single β€” thin border
  • bs::Dialog β€” thick border
  • bs::Sizeable β€” border that can be resized

πŸ“ ci:: β€” color indices πŸ“

see colorIndex in Prima::Widget.

  • ci::NormalText or ci::Fore
  • ci::Normal or ci::Back
  • ci::HiliteText
  • ci::Hilite
  • ci::DisabledText
  • ci::Disabled
  • ci::Light3DColor
  • ci::Dark3DColor
  • ci::MaxId

πŸ‘‘ cl:: β€” colors πŸ‘‘

see colorIndex in Prima::Widget.

direct color constants

  • cl::Black
  • cl::Blue
  • cl::Green
  • cl::Cyan
  • cl::Red
  • cl::Magenta
  • cl::Brown
  • cl::LightGray
  • cl::DarkGray
  • cl::LightBlue
  • cl::LightGreen
  • cl::LightCyan
  • cl::LightRed
  • cl::LightMagenta
  • cl::Yellow
  • cl::White
  • cl::Gray

indirect color constants

  • cl::NormalText, cl::Fore
  • cl::Normal, cl::Back
  • cl::HiliteText
  • cl::Hilite
  • cl::DisabledText
  • cl::Disabled
  • cl::Light3DColor
  • cl::Dark3DColor
  • cl::MaxSysColor

special constants

peep Colors in Prima::gp_problems.

  • cl::Set β€” logical all-1 color
  • cl::Clear β€” logical all-0 color
  • cl::Invalid β€” invalid color value
  • cl::SysFlag β€” indirect color constant bit set
  • cl::SysMask β€” indirect color constant bit clear mask

color functions

  • from_rgb R8,G8,B8 -> RGB24
  • to_rgb RGB24 -> R8,G8,B8
  • from_bgr B8,G8,R8 -> RGB24
  • to_bgr RGB24 -> B8,G8,R8
  • to_gray_byte RGB24 -> GRAY8
  • to_gray_rgb RGB24 -> GRAY24
  • from_gray_byte GRAY8 -> GRAY24
  • premultiply RGB24,A8 -> RGB24
  • distance RGB24,RGB24 -> distance between colors
  • blend RGB24,RGB24,AMOUNT_FROM_0_TO_1 - RGB24

πŸ”₯ cm:: β€” commands πŸ”₯

keyboard and mouse commands

see key_down in Prima::Widget, mouse_down in Prima::Widget.

  • cm::KeyDown
  • cm::KeyUp
  • cm::MouseDown
  • cm::MouseUp
  • cm::MouseClick
  • cm::MouseWheel
  • cm::MouseMove
  • cm::MouseEnter
  • cm::MouseLeave

internal commands ( used in core only or not used at all )

  • cm::Close
  • cm::Create
  • cm::Destroy
  • cm::Hide
  • cm::Show
  • cm::ReceiveFocus
  • cm::ReleaseFocus
  • cm::Paint
  • cm::Repaint
  • cm::Size
  • cm::Move
  • cm::ColorChanged
  • cm::ZOrderChanged
  • cm::Enable
  • cm::Disable
  • cm::Activate
  • cm::Deactivate
  • cm::FontChanged
  • cm::WindowState
  • cm::Timer
  • cm::Click
  • cm::CalcBounds
  • cm::Post
  • cm::Popup
  • cm::Execute
  • cm::Setup
  • cm::Hint
  • cm::DragDrop
  • cm::DragOver
  • cm::EndDrag
  • cm::Menu
  • cm::EndModal
  • cm::MenuCmd
  • cm::TranslateAccel
  • cm::DelegateKey

πŸ¦„ cr:: β€” pointer cursor resources πŸ¦„

see pointerType in Prima::Widget.

  • cr::Default β€” same pointer type as owner's
  • cr::Arrow β€” arrow pointer
  • cr::Text β€” text entry cursor-like pointer
  • cr::Wait β€” hourglass
  • cr::Size β€” general size action pointer
  • cr::Move β€” general move action pointer
  • cr::SizeWest, cr::SizeW β€” right-move action pointer
  • cr::SizeEast, cr::SizeE β€” left-move action pointer
  • cr::SizeWE β€” general horizontal-move action pointer
  • cr::SizeNorth, cr::SizeN β€” up-move action pointer
  • cr::SizeSouth, cr::SizeS β€” down-move action pointer
  • cr::SizeNS β€” general vertical-move action pointer
  • cr::SizeNW β€” up-right move action pointer
  • cr::SizeSE β€” down-left move action pointer
  • cr::SizeNE β€” up-left move action pointer
  • cr::SizeSW β€” down-right move action pointer
  • cr::Invalid β€” invalid action pointer
  • cr::DragNone β€” pointer for an invalid dragging target
  • cr::DragCopy β€” pointer to indicate that a dnd::Copy action can be accepted
  • cr::DragMove β€” pointer to indicate that a dnd::Move action can be accepted
  • cr::DragLink β€” pointer to indicate that a dnd::Link action can be accepted
  • cr::Crosshair β€” the crosshair pointer
  • cr::UpArrow β€” arrow directed upwards
  • cr::QuestionArrow β€” question mark pointer
  • cr::User β€” user-defined icon

🧚 dbt:: β€” device bitmap types 🧚

  • dbt::Bitmap β€” monochrome 1-bit bitmap
  • dbt::Pixmap β€” bitmap compatible with display format
  • dbt::Layered β€” bitmap compatible with display format with alpha channel

πŸ’œ dnd:: β€” drag and drop action constants and functions πŸ’œ

  • dnd::None β€” no DND action was selected or performed
  • dnd::Copy β€” copy action
  • dnd::Move β€” move action
  • dnd::Link β€” link action
  • dnd::Mask β€” combination of all valid actions

is_one_action ACTIONS

returns true if ACTIONS is not a combination of dnd:: constants.

pointer ACTION

returns a cr:: constant corresponding to the ACTION.

to_one_action ACTIONS

selects the best single action from a combination of allowed ACTIONS.

keymod ACTION

returns a km:: keyboard modifier constant that would initiate ACTION if the user presses it during a DND session. returns 0 for dnd::Copy which is the standard action to be performed without any modifiers.

⭐ dt:: β€” drive types ⭐

see query_drive_type in Prima::Utils.

  • dt::None
  • dt::Unknown
  • dt::Floppy
  • dt::HDD
  • dt::Network
  • dt::CDROM
  • dt::Memory

🌟 dt:: β€” Prima::Drawable::draw_text constants 🌟

  • dt::Left β€” text is aligned to the left boundary
  • dt::Right β€” text is aligned to the right boundary
  • dt::Center β€” text is aligned horizontally in the center
  • dt::Top β€” text is aligned to the upper boundary
  • dt::Bottom β€” text is aligned to the lower boundary
  • dt::VCenter β€” text is aligned vertically in the center
  • dt::DrawMnemonic β€” tilde-escapement and underlining is used
  • dt::DrawSingleChar β€” sets tw::BreakSingle option to Prima::Drawable::text_wrap call
  • dt::NewLineBreak β€” sets tw::NewLineBreak option to Prima::Drawable::text_wrap call
  • dt::SpaceBreak β€” sets tw::SpaceBreak option to Prima::Drawable::text_wrap call
  • dt::WordBreak β€” sets tw::WordBreak option to Prima::Drawable::text_wrap call
  • dt::ExpandTabs β€” performs tab character ( \t ) expansion
  • dt::DrawPartial β€” draws the last line, if it is visible partially
  • dt::UseExternalLeading β€” text lines positioned vertically with respect to the font external leading
  • dt::UseClip β€” assign ::clipRect property to the boundary rectangle
  • dt::QueryLinesDrawn β€” calculates and returns the number of lines drawn ( contrary to dt::QueryHeight )
  • dt::QueryHeight β€” if set, calculates and returns vertical extension of the lines drawn
  • dt::NoWordWrap β€” performs no word wrapping by the width of the boundaries
  • dt::WordWrap β€” performs word wrapping by the width of the boundaries
  • dt::Default β€” dt::NewLineBreak|dt::WordBreak|dt::ExpandTabs|dt::UseExternalLeading

πŸŽ€ fdo:: β€” find / replace dialog options πŸŽ€

see Prima::FindDialog.

  • fdo::MatchCase
  • fdo::WordsOnly
  • fdo::RegularExpression
  • fdo::BackwardSearch
  • fdo::ReplacePrompt

🌸 fds:: β€” find / replace dialog scope type 🌸

see Prima::FindDialog.

  • fds::Cursor
  • fds::Top
  • fds::Bottom

πŸ¦‹ fe:: β€” file events constants πŸ¦‹

see Prima::File.

…aaaaaand finishing out the fe:: squad β€” the last three, no cap:

fe::Read
fe::Write
fe::Exception

fm:: β€” fill modes 🎨

Peep "fillMode" in Prima::Drawable for the whole story.

fp::Alternate
fp::Winding
fp::Overlay

fp:: β€” standard fill pattern indices 🩷

Check out "fillPattern" in Prima::Drawable, bestie.

fp::Empty
fp::Solid
fp::Line
fp::LtSlash
fp::Slash
fp::BkSlash
fp::LtBkSlash
fp::Hatch
fp::XHatch
fp::Interleave
fp::WideDot
fp::CloseDot
fp::SimpleDots
fp::Borland
fp::Parquet

So these are the builtin pattern indexes, and then there's a whole lil toolbox of helper functions that live on this same page. (And yes, fp:: shows up twice in this manpage meaning two completely different things β€” fill patterns and font pitches. Iconic of it, honestly. Keep your eyes peeled. πŸ‘€)

  • builtin $FILL_PATTERN β€” you hand it whatever "Drawable::fillPattern" gave you (that's an 8x8 array of integers, btw), and it checks if that array matches one of the builtin "fp::" constants. Match found? It returns one. No match? You get undef. 🫠
  • is_empty $FILL_PATTERN β€” same deal, you pass in the 8x8 array from "Drawable::fillPattern", and it checks whether the whole thing is all zeros.
  • is_solid $FILL_PATTERN β€” again with the "Drawable::fillPattern" 8x8 array of integers; this one checks if every single value is ones (like, 0xff).
  • patterns β€” returns you a set of string-encoded fill patterns that line up with the builtin "fp::" constants. ⚠️ But lowkey important: these are not suitable for use in "Drawable::fillPatterns". Like, do not do that. πŸ™…β€β™€οΈ

fp:: β€” font pitches ✍️

See "pitch" in Prima::Drawable, bestie.

fp::Default
fp::Fixed
fp::Variable

fr:: β€” fetch resource constants πŸ”

See "fetch_resource" in Prima::Widget.

fr::Color
fr::Font
fs::String

fs:: β€” font styles πŸ’…

See "style" in Prima::Drawable.

fs::Normal
fs::Bold
fs::Thin
fs::Italic
fs::Underlined
fs::StruckOut
fs::Outline

fw:: β€” font weights βš–οΈ

See "weight" in Prima::Drawable.

fw::UltraLight
fw::ExtraLight
fw::Light
fw::SemiLight
fw::Medium
fw::SemiBold
fw::Bold
fw::ExtraBold
fw::UltraBold

ggo:: β€” glyph outline commands πŸ–‹οΈ

ggo::Move
ggo::Line
ggo::Conic
ggo::Cubic

Also peep "render_glyph" in Prima::Drawable.

gm:: β€” grow modes 🌱

See "growMode" in Prima::Widget.

Basic constants

  • gm::GrowLoX β€” the widget's left side keeps a constant distance from the owner's right side.
  • gm::GrowLoY β€” the widget's bottom side keeps a constant distance from the owner's top side.
  • gm::GrowHiX β€” the widget's right side keeps a constant distance from the owner's right side.
  • gm::GrowHiY β€” the widget's top side keeps a constant distance from the owner's top side.
  • gm::XCenter β€” the widget stays centered on its owner's horizontal axis.
  • gm::YCenter β€” the widget stays centered on its owner's vertical axis.
  • gm::DontCare β€” the widget's origin stays constant relative to the screen.

Derived or aliased constants

gm::GrowAll      gm::GrowLoX|gm::GrowLoY|gm::GrowHiX|gm::GrowHiY
gm::Center       gm::XCenter|gm::YCenter
gm::Client       gm::GrowHiX|gm::GrowHiY
gm::Right        gm::GrowLoX|gm::GrowHiY
gm::Left         gm::GrowHiY
gm::Floor        gm::GrowHiX

gui:: β€” GUI types πŸ–₯️

See "get_system_info" in Prima::Application.

gui::Default
gui::Windows
gui::XLib
gui::GTK

le:: β€” line end styles πŸ”š

See "lineEnd" in Prima::Drawable.

le::Flat
le::Square
le::Round
le::Arrow
le::Cusp
le::InvCusp
le::Knob
le::Rect
le::RoundRect
le::Spearhead
le::Tail

Functions: 🧚

le::transform($matrix)
le::scale($scalex, [$scaley = $scalex])

lei:: β€” line end indexes πŸ”’

lei::LineTail
lei::LineHead
lei::ArrowTail
lei::ArrowHead
lei::Max
lei::Only

See "lineEndIndex" in Prima::Drawable.

lj:: β€” line join styles πŸͺ’

See "lineJoin" in Prima::Drawable.

lj::Round
lj::Bevel
lj::Miter

lp:: β€” predefined line pattern styles 🧡

See "linePattern" in Prima::Drawable. And yes, these comments are literally part of the vibes β€” keeping them exactly as they are because they're honestly the clearest little ASCII art in the whole codebase:

lp::Null           #    ""              /*              */
lp::Solid          #    "\1"            /* ___________  */
lp::Dash           #    "\x9\3"         /* __ __ __ __  */
lp::LongDash       #    "\x16\6"        /* _____ _____  */
lp::ShortDash      #    "\3\3"          /* _ _ _ _ _ _  */
lp::Dot            #    "\1\3"          /* . . . . . .  */
lp::DotDot         #    "\1\1"          /* ............ */
lp::DashDot        #    "\x9\6\1\3"     /* _._._._._._  */
lp::DashDotDot     #    "\x9\3\1\3\1\3" /* _.._.._.._.. */

im:: β€” image types πŸ–ΌοΈ

See "type" in Prima::Image.

Bit depth constants

im::bpp1
im::bpp4
im::bpp8
im::bpp16
im::bpp24
im::bpp32
im::bpp64
im::bpp128

Pixel format constants

im::Color
im::GrayScale
im::RealNumber
im::ComplexNumber
im::TrigComplexNumber
im::SignedInt

Mnemonic image types

These ones are little shorthands that expand into the real thing β€” the - here means "is defined as", so don't go writing it in code:

im::Mono          - im::bpp1
im::BW            - im::bpp1 | im::GrayScale
im::16            - im::bpp4
im::Nibble        - im::bpp4
im::256           - im::bpp8
im::RGB           - im::bpp24
im::Triple        - im::bpp24
im::Byte          - gray 8-bit unsigned integer
im::Short         - gray 16-bit unsigned integer
im::Long          - gray 32-bit unsigned integer
im::Float         - float
im::Double        - double
im::Complex       - dual float
im::DComplex      - dual double
im::TrigComplex   - dual float
im::TrigDComplex  - dual double

Extra formats

im::fmtBGR
im::fmtRGBI
im::fmtIRGB
im::fmtBGRI
im::fmtIBGR

Masks

im::BPP      - bit depth constants
im::Category - category constants
im::FMT      - extra format constants

ict:: β€” image conversion types πŸ”„

See "conversion" in Prima::Image.

  • ict::None β€” no dithering, with a static palette or a palette optimized by the source palette.
  • ict::Posterization β€” no dithering, with a palette optimized by the source pixels.
  • ict::Ordered β€” 8x8 ordered halftone dithering.
  • ict::ErrorDiffusion β€” error diffusion dithering with a static palette.
  • ict::Optimized β€” error diffusion dithering with an optimized palette.

Their values are combinations of "ictp::" and "ictd::" constants (both coming up right below, don't worry πŸ’–).

ictd:: β€” image conversion types, dithering 🌫️

These constants pick the color correction (dithering) algorithm when you're downsampling an image:

  • ictd::None β€” no dithering, pure colors only.
  • ictd::Ordered β€” 8x8 ordered halftone dithering (checkerboard).
  • ictd::ErrorDiffusion β€” error diffusion dithering (2/5 down, 2/5 right, 1/5 down/right).

ictp:: β€” image conversion types, palette optimization πŸŽ›οΈ

These constants pick how the target palette gets made up when you're downsampling an image:

  • ictp::Unoptimized β€” use whatever color mapping method is fastest; image quality can be severely compromised. 🫣
  • ictp::Cubic β€” use a static cubic palette; a bit slower, guaranteed mediocre quality.
  • ictp::Optimized β€” collect the available colors in the image; slowest, gives the best results. ✨
Not all combinations of ictp and ictd constants are valid. Fr fr, check before you commit.

is:: β€” image statistics indices πŸ“Š

See "stats" in Prima::Image.

is::RangeLo  - minimum pixel value
is::RangeHi  - maximum pixel value
is::Mean     - mean value
is::Variance - variance
is::StdDev   - standard deviation
is::Sum      - the sum of pixel values
is::Sum2     - the sum of squares of pixel values

ist:: β€” image scaling types πŸ”­

ist::None      - image stripped or padded with zeros
ist::Box       - the image will be scaled using a simple box transform
ist::BoxX      - columns behave as ist::None, rows as ist::Box
ist::BoxY      - rows behave as in ist::None, columns as ist::Box
ist::AND       - shrunken pixels AND-end together (black-on-white images)
ist::OR        - shrunken pixels OR-end together (white-on-black images)
ist::Triangle  - bilinear interpolation
ist::Quadratic - 2nd order (quadratic) B-Spline approximation of the Gaussian
ist::Sinc      - sine function
ist::Hermite   - B-Spline interpolation
ist::Cubic     - 3rd order (cubic) B-Spline approximation of the Gaussian
ist::Gaussian  - Gaussian transform with gamma=0.5

See "scaling" in Prima::Image.

kb:: β€” keyboard virtual codes ⌨️

Also go look at "KeyDown" in Prima::Widget.

Modificator keys

kb::ShiftL   kb::ShiftR   kb::CtrlL      kb::CtrlR
kb::AltL     kb::AltR     kb::MetaL      kb::MetaR
kb::SuperL   kb::SuperR   kb::HyperL     kb::HyperR
kb::CapsLock kb::NumLock  kb::ScrollLock kb::ShiftLock

Keys with character code defined

kb::Backspace  kb::Tab    kb::Linefeed   kb::Enter
kb::Return     kb::Escape kb::Esc        kb::Space

Function keys

kb::F1 .. kb::F30
kb::L1 .. kb::L10
kb::R1 .. kb::R10

Other

kb::Clear    kb::Pause   kb::SysRq  kb::SysReq
kb::Delete   kb::Home    kb::Left   kb::Up
kb::Right    kb::Down    kb::PgUp   kb::Prior
kb::PageUp   kb::PgDn    kb::Next   kb::PageDown
kb::End      kb::Begin   kb::Select kb::Print
kb::PrintScr kb::Execute kb::Insert kb::Undo
kb::Redo     kb::Menu    kb::Find   kb::Cancel
kb::Help     kb::Break   kb::BackTab

Okay so that's a lot of constants and you're doing amazing for making it this far πŸ’œ β€” but hold up, there's still more coming. Don't wander off yet, bestie. πŸ¦‹

Masking constants 🎭

  • kb::CharMask β€” character codes
  • kb::CodeMask β€” virtual key codes (all other kb:: values)
  • kb::ModMask β€” km:: values

km:: β€” keyboard modifiers ⌨️

See also KeyDown in Prima::Widget.

km::Shift
km::Ctrl
km::Alt
km::KeyPad
km::DeadKey
km::Unicode

mt:: β€” modality types πŸͺŸ

See get_modal in Prima::Window, get_modal_window in Prima::Window.

mt::None
mt::Shared
mt::Exclusive

nt:: β€” notification types πŸ””

Used in Prima::Component::notification_types to describe event flow.

See also Flow in Prima::Object.

Starting point constants

nt::PrivateFirst
nt::CustomFirst

Direction constants

nt::FluxReverse
nt::FluxNormal

Complexity constants

nt::Single
nt::Multiple
nt::Event

Composite constants

nt::Default       ( PrivateFirst | Multiple | FluxReverse)
nt::Property      ( PrivateFirst | Single   | FluxNormal )
nt::Request       ( PrivateFirst | Event    | FluxNormal )
nt::Notification  ( CustomFirst  | Multiple | FluxReverse )
nt::Action        ( CustomFirst  | Single   | FluxReverse )
nt::Command       ( CustomFirst  | Event    | FluxReverse )

mb:: β€” mouse buttons πŸ–±οΈ

See also MouseDown in Prima::Widget.

mb::b1 or mb::Left
mb::b2 or mb::Middle
mb::b3 or mb::Right
mb::b4
mb::b5
mb::b6
mb::b7
mb::b8

mb:: β€” message box constants πŸ’¬

Message box and modal result button commands. See also modalResult in Prima::Window, modalResult in Prima::Button.

mb::OK, mb::Ok
mb::Cancel
mb::Yes
mb::No
mb::Abort
mb::Retry
mb::Ignore
mb::Help

Message box composite (multi-button) constants:

mb::OKCancel, mb::OkCancel
mb::YesNo
mb::YesNoCancel
mb::ChangeAll

Message box icon and bell constants:

mb::Error
mb::Warning
mb::Information
mb::Question

ps:: β€” paint states 🎨

  • ps::Disabled β€” can neither draw, nor get/set graphical properties on an object
  • ps::Enabled β€” can both draw and get/set graphical properties on an object
  • ps::Information β€” can only get/set graphical properties on an object

For brevity, ps::Disabled is equal to 0 so this allows for simple boolean testing if one can get/set graphical properties on an object.

See get_paint_state in Drawable.

rgn:: β€” result of Prima::Region.rect_inside 🫧

  • rgn::Inside β€” the rectangle is fully inside the region
  • rgn::Outside β€” the rectangle is fully outside the region
  • rgn::Partially β€” the rectangle overlaps the region but is not fully inside

rgnop:: β€” Prima::Region.combine set operations 🧩

rgnop::Copy
rgnop::Intersect
rgnop::Union
rgnop::Xor
rgnop::Diff

rop:: β€” raster operation codes πŸ–ŒοΈ

See Raster operations in Prima::Drawable.

rop::Blackness      #   = 0
rop::NotOr          #   = !(src | dest)
rop::NotSrcAnd      #  &= !src
rop::NotPut         #   = !src
rop::NotDestAnd     #   = !dest & src
rop::Invert         #   = !dest
rop::XorPut         #  ^= src
rop::NotAnd         #   = !(src & dest)
rop::AndPut         #  &= src
rop::NotXor         #   = !(src ^ dest)
rop::NotSrcXor      #     alias for rop::NotXor
rop::NotDestXor     #     alias for rop::NotXor
rop::NoOper         #   = dest
rop::NotSrcOr       #  |= !src
rop::CopyPut        #   = src
rop::NotDestOr      #   = !dest | src
rop::OrPut          #  |= src
rop::Whiteness      #   = 1

12 Porter-Duff operators 🧚

rop::Clear       # same as rop::Blackness, = 0
rop::XorOver     # = src ( 1 - dstA ) + dst ( 1 - srcA )
rop::SrcOver     # = src srcA + dst (1 - srcA)
rop::DstOver     # = dst srcA + src (1 - dstA)
rop::SrcCopy     # same as rop::CopyPut,   = src
rop::DstCopy     # same as rop::NoOper,    = dst
rop::SrcIn       # = src dstA
rop::DstIn       # = dst srcA
rop::SrcOut      # = src ( 1 - dstA )
rop::DstOut      # = dst ( 1 - srcA )
rop::SrcAtop     # = src dstA + dst ( 1 - srcA )
rop::DstAtop     # = dst srcA + src ( 1 - dstA )

rop::Blend       # src + dst (1 - srcA)
                 # same as rop::SrcOver but assumes the premultiplied source

rop::PorterDuffMask - masks out all bits but the constants above

Photoshop operators πŸ–ΌοΈ

rop::Add
rop::Multiply
rop::Screen
rop::Overlay
rop::Darken
rop::Lighten
rop::ColorDodge
rop::ColorBurn
rop::HardLight
rop::SoftLight
rop::Difference
rop::Exclusion

Special flags 🚩

rop::SrcAlpha           # The combination of these four flags
rop::SrcAlphaShift      # may encode extra source and destination
rop::DstAlpha           # alpha values in cases either where there is none
rop::DstAlphaShift      # in the images, or as additional blend factors.
                        #
rop::ConstantAlpha      # (same as rop::SrcAlpha|rop::DstAlpha)

rop::AlphaCopy          # source image is treated a 8-bit grayscale alpha
rop::ConstantColor      # foreground color is used to fill the color bits

rop::Default            # rop::SrcOver for ARGB destinations, rop::CopyPut otherwise

ROP functions πŸ› οΈ

alpha ROP, SRC_ALPHA = undef, DST_ALPHA = undef

Combines one of the alpha-supporting ROPs (Porter-Duff and Photoshop operators) with source and destination alpha, if defined, and returns a new ROP constant. This is useful when blending with constant alpha is required with/over images that don't have their own alpha channel. Or as an additional alpha channel when using icons.

blend ALPHA

Creates a ROP that would effectively execute alpha blending of the source image over the destination image with ALPHA value.

sbmp:: β€” system bitmaps indices πŸ–ΌοΈ

See also Prima::StdBitmap.

sbmp::Logo
sbmp::CheckBoxChecked
sbmp::CheckBoxCheckedPressed
sbmp::CheckBoxUnchecked
sbmp::CheckBoxUncheckedPressed
sbmp::RadioChecked
sbmp::RadioCheckedPressed
sbmp::RadioUnchecked
sbmp::RadioUncheckedPressed
sbmp::Warning
sbmp::Information
sbmp::Question
sbmp::OutlineCollapse
sbmp::OutlineExpand
sbmp::Error
sbmp::SysMenu
sbmp::SysMenuPressed
sbmp::Max
sbmp::MaxPressed
sbmp::Min
sbmp::MinPressed
sbmp::Restore
sbmp::RestorePressed
sbmp::Close
sbmp::ClosePressed
sbmp::Hide
sbmp::HidePressed
sbmp::DriveUnknown
sbmp::DriveFloppy
sbmp::DriveHDD
sbmp::DriveNetwork
sbmp::DriveCDROM
sbmp::DriveMemory
sbmp::GlyphOK
sbmp::GlyphCancel
sbmp::SFolderOpened
sbmp::SFolderClosed
sbmp::Last

scr:: β€” scroll exposure results πŸ“œ

Widget::scroll returns one of these.

  • scr::Error β€” failure
  • scr::NoExpose β€” call resulted in no new exposed areas
  • scr::Expose β€” call resulted in new exposed areas, expect a repaint

sv:: β€” system value indices βš™οΈ

See also get_system_value in Prima::Application.

  • sv::YMenu β€” the height of the menu bar in top-level windows
  • sv::YTitleBar β€” the height of the title bar in top-level windows
  • sv::XIcon, sv::YIcon β€” width and height of the main icon dimensions that the system will accept
  • sv::XSmallIcon, sv::YSmallIcon β€” width and height of the alternate icon dimensions the system will accept
  • sv::XPointer, sv::YPointer β€” width and height of the mouse pointer icon that the system will accept
  • sv::XScrollbar β€” the width of the default vertical scrollbar
  • sv::YScrollbar β€” the height of the default horizontal scrollbar
  • sv::XCursor β€” width of the system cursor
  • sv::AutoScrollFirst, sv::AutoScrollNext β€” the initial scroll timeout and the repetitive scroll timeout, respectively
  • sv::InsertMode β€” the system insert mode
  • sv::XbsNone, sv::YbsNone, sv::XbsSizeable, sv::YbsSizeable, sv::XbsSingle, sv::YbsSingle, sv::XbsDialog, sv::YbsDialog β€” the widths and heights of the top-level window decorations, correspondingly, for borderStyle being bs::None, bs::Sizeable, bs::Single and bs::Dialog
  • sv::MousePresent β€” 1 if the mouse is present, 0 otherwise
  • sv::MouseButtons β€” number of mouse buttons
  • sv::WheelPresent β€” 1 if the mouse wheel is present, 0 otherwise
  • sv::SubmenuDelay β€” timeout (in ms) before a sub-menu shows up on an implicit selection
  • sv::FullDrag β€” 1 if top-level windows are dragged dynamically, 0 for marquee mode
  • sv::DblClickDelay β€” mouse double-click timeout in milliseconds
  • sv::ShapeExtension β€” 1 if Prima::Widget::shape functionality is supported, 0 otherwise
  • sv::ColorPointer β€” 1 if the system accepts color pointer icons
  • sv::CanUTF8_Input β€” 1 if the system can generate key codes in unicode
  • sv::CanUTF8_Output β€” 1 if the system can output utf8 text
  • sv::CompositeDisplay β€” 1 if the system uses double-buffering and alpha composition for the desktop, 0 if it doesn't, -1 if unknown
  • sv::LayeredWidgets β€” 1 if the system supports layering
  • sv::FixedPointerSize β€” 0 if the system doesn't support arbitrarily sized pointers and will resize custom icons to the system size
  • sv::MenuCheckSize β€” width and height of the default menu check icon
  • sv::FriBidi β€” 1 if Prima is compiled with libfribidi and full bidi unicode support is available
  • sv::Antialias β€” 1 if the system supports antialiasing and an alpha layer for primitives
  • sv::LibThai β€” 1 if Prima is compiled with libthai

πŸŽ€ ta:: β€” alignment constants πŸŽ€

Bestie, these are the "where do I put it" constants, used in: Prima::InputLine, Prima::ImageViewer, Prima::Label.

  • ta::Left
  • ta::Right
  • ta::Center
  • ta::Top
  • ta::Bottom
  • ta::Middle

✨ to:: β€” text output constants ✨

Okay so these are used in a bunch of text- and glyph-related functions, and ngl the group is a little vague β€” it's a set of bit values that may or may not go together depending on which function you're calling. Lowkey iconic of them tbh.

  • to::Plain β€” the default value, 0
  • to::AddOverhangs β€” used in get_text_width and get_text_shape_width to ask for text overhangs to be included in the returned text width
  • to::Glyphs β€” used in get_font_abc and get_font_def to select the extension of glyph indexes rather than text codepoints
  • to::Unicode β€” used in get_font_abc and get_font_def to select the extension of unicode rather than ascii text codepoints
  • to::RTL β€” used in get_text_shape_width to request RTL bidi direction. Also used in Prima::Drawable::Glyphs::indexes values to mark RTL characters

πŸ¦‹ tw:: β€” text wrapping constants πŸ¦‹

Peep "text_wrap" in Prima::Drawable for the full tea β˜•

  • tw::CalcMnemonic β€” calculates the tilde underline position
  • tw::CollapseTilde β€” removes the escaping tilde from text
  • tw::CalcTabs β€” wraps the text with respect to tab expansion
  • tw::ExpandTabs β€” expands tab characters
  • tw::BreakSingle β€” determines if the text is broken into single characters when the text cannot be fit
  • tw::NewLineBreak β€” breaks the line on newline characters
  • tw::SpaceBreak β€” breaks the line on space or tab characters
  • tw::ReturnChunks β€” returns wrapped text chunks
  • tw::ReturnLines β€” returns positions and lengths of wrapped text chunks
  • tw::WordBreak β€” defines if text break by width goes by the characters or by the words
  • tw::ReturnFirstLineLength β€” returns the length of the first wrapped line
  • tw::Default β€” tw::NewLineBreak | tw::CalcTabs | tw::ExpandTabs | tw::ReturnLines | tw::WordBreak

πŸ’… wc:: β€” widget classes πŸ’…

Check "widgetClass" in Prima::Widget if you wanna go deeper 🫢

  • wc::Undef
  • wc::Button
  • wc::CheckBox
  • wc::Combo
  • wc::Dialog
  • wc::Edit
  • wc::InputLine
  • wc::Label
  • wc::ListBox
  • wc::Menu
  • wc::Popup
  • wc::Radio
  • wc::ScrollBar
  • wc::Slider
  • wc::Widget, wc::Custom
  • wc::Window
  • wc::Application

🌸 ws:: β€” window states 🌸

See "windowState" in Prima::Window, mwah πŸ’‹

  • ws::Normal
  • ws::Minimized
  • ws::Maximized
  • ws::Fullscreen

πŸ‘‘ AUTHOR πŸ‘‘

Dmitry Karasik, <dmitry@karasik.eu.org>. A legend, fr fr πŸ’œ


πŸŽ€ SEE ALSO πŸŽ€

Prima, Prima::Classes β€” go read those next bestie, they ate πŸ’…


That's the whole page, babes! This was Prima::Const(3), generated from perl v5.42.0 and dated 2024-08-20 β€” go forth and const-ify your life βœ¨πŸ¦‹πŸ’–

πŸ“¦ where this page comes from