Panda3D
Public Types | Public Member Functions | Static Public Member Functions

WindowProperties Class Reference

A container for the various kinds of properties we might ask to have on a graphics window before we open it. More...

#include "windowProperties.h"

List of all members.

Public Types

enum  MouseMode { M_absolute, M_relative }
enum  ZOrder { Z_bottom, Z_normal, Z_top }

Public Member Functions

 WindowProperties (const WindowProperties &copy)
void add_properties (const WindowProperties &other)
 Sets any properties that are explicitly specified in other on this object.
void clear ()
 Unsets all properties that have been specified so far, and resets the WindowProperties structure to its initial empty state.
void clear_cursor_filename ()
 Removes the cursor_filename specification from the properties.
void clear_cursor_hidden ()
 Removes the cursor_hidden specification from the properties.
void clear_fixed_size ()
 Removes the fixed_size specification from the properties.
void clear_foreground ()
 Removes the foreground specification from the properties.
void clear_fullscreen ()
 Removes the fullscreen specification from the properties.
void clear_icon_filename ()
 Removes the icon_filename specification from the properties.
void clear_minimized ()
 Removes the minimized specification from the properties.
void clear_mouse_mode ()
 Removes the mouse_mode specification from the properties.
void clear_open ()
 Removes the open specification from the properties.
void clear_origin ()
 Removes the origin specification from the properties.
void clear_parent_window ()
 Removes the S_parent_window specification from the properties.
void clear_raw_mice ()
 Removes the raw_mice specification from the properties.
void clear_size ()
 Removes the size specification from the properties.
void clear_title ()
 Removes the title specification from the properties.
void clear_undecorated ()
 Removes the undecorated specification from the properties.
void clear_z_order ()
 Removes the z_order specification from the properties.
const Filenameget_cursor_filename () const
 Returns the icon filename associated with the mouse cursor.
bool get_cursor_hidden () const
 Returns true if the mouse cursor is invisible.
bool get_fixed_size () const
 Returns true if the window cannot be resized by the user, false otherwise.
bool get_foreground () const
 Returns true if the window is in the foreground.
bool get_fullscreen () const
 Returns true if the window is in fullscreen mode.
const Filenameget_icon_filename () const
 Returns the icon filename associated with the window.
bool get_minimized () const
 Returns true if the window is minimized.
MouseMode get_mouse_mode () const
 See set_mouse_mode().
bool get_open () const
 Returns true if the window is open.
WindowHandleget_parent_window () const
 Returns the parent window specification, or NULL if there is no parent window specified.
bool get_raw_mice () const
 Returns true if the window reads the raw mice.
const string & get_title () const
 Returns the window's title.
bool get_undecorated () const
 Returns true if the window has no border.
int get_x_origin () const
 Returns the x coordinate of the window's top-left corner, not including decorations.
int get_x_size () const
 Returns size in pixels in the x dimension of the useful part of the window, not including decorations.
int get_y_origin () const
 Returns the y coordinate of the window's top-left corner, not including decorations.
int get_y_size () const
 Returns size in pixels in the y dimension of the useful part of the window, not including decorations.
ZOrder get_z_order () const
 Returns the window's z_order.
bool has_cursor_filename () const
 Returns true if set_cursor_filename() has been specified.
bool has_cursor_hidden () const
 Returns true if set_cursor_hidden() has been specified.
bool has_fixed_size () const
 Returns true if set_fixed_size() has been specified.
bool has_foreground () const
 Returns true if set_foreground() has been specified.
bool has_fullscreen () const
 Returns true if set_fullscreen() has been specified.
bool has_icon_filename () const
 Returns true if set_icon_filename() has been specified.
bool has_minimized () const
 Returns true if set_minimized() has been specified.
bool has_mouse_mode () const
bool has_open () const
 Returns true if set_open() has been specified.
bool has_origin () const
 Returns true if the window origin has been specified, false otherwise.
bool has_parent_window () const
 Checks the S_parent_window specification from the properties.
bool has_raw_mice () const
 Returns true if set_raw_mice() has been specified.
bool has_size () const
 Returns true if the window size has been specified, false otherwise.
bool has_title () const
 Returns true if the window title has been specified, false otherwise.
bool has_undecorated () const
 Returns true if set_undecorated() has been specified.
bool has_z_order () const
 Returns true if the window z_order has been specified, false otherwise.
bool is_any_specified () const
 Returns true if any properties have been specified, false otherwise.
bool operator!= (const WindowProperties &other) const
void operator= (const WindowProperties &copy)
bool operator== (const WindowProperties &other) const
void output (ostream &out) const
 Sets any properties that are explicitly specified in other on this object.
void set_cursor_filename (const Filename &cursor_filename)
 Specifies the file that contains the icon to associate with the mouse cursor when it is within the window (and visible).
void set_cursor_hidden (bool cursor_hidden)
 Specifies whether the mouse cursor should be visible.
void set_fixed_size (bool fixed_size)
 Specifies whether the window should be resizable by the user.
void set_foreground (bool foreground)
 Specifies whether the window should be opened in the foreground (true), or left in the background (false).
void set_fullscreen (bool fullscreen)
 Specifies whether the window should be opened in fullscreen mode (true) or normal windowed mode (false, the default).
void set_icon_filename (const Filename &icon_filename)
 Specifies the file that contains the icon to associate with the window when it is minimized.
void set_minimized (bool minimized)
 Specifies whether the window should be created minimized (true), or normal (false).
void set_mouse_mode (MouseMode mode)
 Specifies the mode in which the window is to operate its mouse pointer.
void set_open (bool open)
 Specifies whether the window should be open.
void set_origin (int x_origin, int y_origin)
 Specifies the origin on the screen (in pixels, relative to the top-left corner) at which the window should appear.
void set_parent_window (WindowHandle *parent_window=NULL)
 Specifies the window that this window should be attached to.
void set_parent_window (size_t parent)
 Specifies the window that this window should be attached to.
void set_raw_mice (bool raw_mice)
 Specifies whether the window should read the raw mouse devices.
void set_size (int x_size, int y_size)
 Specifies the requested size of the window, in pixels.
void set_title (const string &title)
 Specifies the title that should be assigned to the window.
void set_undecorated (bool undecorated)
 Specifies whether the window should be created with a visible title and border (false, the default) or not (true).
void set_z_order (ZOrder z_order)
 Specifies the relative ordering of the window with respect to other windows.

Static Public Member Functions

static void clear_default ()
 Returns the "default" WindowProperties to whatever is specified in the user's config file.
static WindowProperties get_config_properties ()
 Returns a WindowProperties structure with all of the default values filled in according to the user's config file.
static WindowProperties get_default ()
 Returns the "default" WindowProperties.
static void set_default (const WindowProperties &default_properties)
 Replaces the "default" WindowProperties with the specified structure.
static WindowProperties size (int x_size, int y_size)
 Returns a WindowProperties structure with only the size specified.

Detailed Description

A container for the various kinds of properties we might ask to have on a graphics window before we open it.

This also serves to hold the current properties for a window after it has been opened.

Definition at line 30 of file windowProperties.h.


Member Function Documentation

void WindowProperties::add_properties ( const WindowProperties other)
void WindowProperties::clear ( )

Unsets all properties that have been specified so far, and resets the WindowProperties structure to its initial empty state.

Definition at line 192 of file windowProperties.cxx.

Referenced by GraphicsWindow::clear_rejected_properties(), GraphicsWindow::process_events(), and GraphicsWindow::set_properties_now().

void WindowProperties::clear_cursor_filename ( ) [inline]

Removes the cursor_filename specification from the properties.

Definition at line 695 of file windowProperties.I.

Referenced by x11GraphicsWindow::set_properties_now(), and WinGraphicsWindow::set_properties_now().

void WindowProperties::clear_cursor_hidden ( ) [inline]

Removes the cursor_hidden specification from the properties.

Definition at line 602 of file windowProperties.I.

Referenced by x11GraphicsWindow::set_properties_now(), WinGraphicsWindow::set_properties_now(), and eglGraphicsWindow::set_properties_now().

void WindowProperties::clear_default ( ) [static]

Returns the "default" WindowProperties to whatever is specified in the user's config file.

Definition at line 142 of file windowProperties.cxx.

void WindowProperties::clear_fixed_size ( ) [inline]

Removes the fixed_size specification from the properties.

Definition at line 318 of file windowProperties.I.

void WindowProperties::clear_foreground ( ) [inline]

Removes the foreground specification from the properties.

Definition at line 414 of file windowProperties.I.

Referenced by x11GraphicsWindow::set_properties_now(), WinGraphicsWindow::set_properties_now(), and eglGraphicsWindow::set_properties_now().

void WindowProperties::clear_fullscreen ( ) [inline]
void WindowProperties::clear_icon_filename ( ) [inline]

Removes the icon_filename specification from the properties.

Definition at line 648 of file windowProperties.I.

void WindowProperties::clear_minimized ( ) [inline]

Removes the minimized specification from the properties.

Definition at line 461 of file windowProperties.I.

Referenced by WinGraphicsWindow::set_properties_now().

void WindowProperties::clear_mouse_mode ( ) [inline]

Removes the mouse_mode specification from the properties.

Definition at line 799 of file windowProperties.I.

Referenced by GraphicsWindow::set_properties_now().

void WindowProperties::clear_open ( ) [inline]

Removes the open specification from the properties.

Definition at line 556 of file windowProperties.I.

Referenced by GraphicsWindow::set_properties_now().

void WindowProperties::clear_origin ( ) [inline]

Removes the origin specification from the properties.

Definition at line 113 of file windowProperties.I.

Referenced by x11GraphicsWindow::set_properties_now(), GraphicsWindow::set_properties_now(), and eglGraphicsWindow::set_properties_now().

void WindowProperties::clear_parent_window ( ) [inline]

Removes the S_parent_window specification from the properties.

Definition at line 855 of file windowProperties.I.

void WindowProperties::clear_raw_mice ( ) [inline]

Removes the raw_mice specification from the properties.

Definition at line 508 of file windowProperties.I.

void WindowProperties::clear_size ( ) [inline]

Removes the size specification from the properties.

Definition at line 176 of file windowProperties.I.

Referenced by x11GraphicsWindow::set_properties_now(), GraphicsWindow::set_properties_now(), and eglGraphicsWindow::set_properties_now().

void WindowProperties::clear_title ( ) [inline]

Removes the title specification from the properties.

Definition at line 222 of file windowProperties.I.

Referenced by x11GraphicsWindow::set_properties_now(), WinGraphicsWindow::set_properties_now(), and eglGraphicsWindow::set_properties_now().

void WindowProperties::clear_undecorated ( ) [inline]

Removes the undecorated specification from the properties.

Definition at line 270 of file windowProperties.I.

void WindowProperties::clear_z_order ( ) [inline]

Removes the z_order specification from the properties.

Definition at line 743 of file windowProperties.I.

Referenced by x11GraphicsWindow::set_properties_now(), WinGraphicsWindow::set_properties_now(), and eglGraphicsWindow::set_properties_now().

WindowProperties WindowProperties::get_config_properties ( ) [static]
const Filename & WindowProperties::get_cursor_filename ( ) const [inline]
bool WindowProperties::get_cursor_hidden ( ) const [inline]
WindowProperties WindowProperties::get_default ( ) [static]

Returns the "default" WindowProperties.

If set_default() has been called, this returns that WindowProperties structure; otherwise, this returns get_config_properties().

Definition at line 108 of file windowProperties.cxx.

References get_config_properties().

Referenced by PandaFramework::get_default_window_props(), and GraphicsWindow::GraphicsWindow().

bool WindowProperties::get_fixed_size ( ) const [inline]

Returns true if the window cannot be resized by the user, false otherwise.

Definition at line 298 of file windowProperties.I.

Referenced by add_properties(), WinGraphicsWindow::make_style(), output(), x11GraphicsWindow::process_events(), eglGraphicsWindow::process_events(), and x11GraphicsWindow::set_wm_properties().

bool WindowProperties::get_foreground ( ) const [inline]
bool WindowProperties::get_fullscreen ( ) const [inline]
const Filename & WindowProperties::get_icon_filename ( ) const [inline]

Returns the icon filename associated with the window.

Definition at line 626 of file windowProperties.I.

Referenced by add_properties(), and output().

bool WindowProperties::get_minimized ( ) const [inline]
WindowProperties::MouseMode WindowProperties::get_mouse_mode ( ) const [inline]
bool WindowProperties::get_open ( ) const [inline]

Returns true if the window is open.

Definition at line 536 of file windowProperties.I.

Referenced by add_properties(), GraphicsWindow::is_active(), GraphicsWindow::is_closed(), output(), and GraphicsWindow::set_properties_now().

WindowHandle * WindowProperties::get_parent_window ( ) const [inline]

Returns the parent window specification, or NULL if there is no parent window specified.

Definition at line 835 of file windowProperties.I.

Referenced by add_properties(), x11GraphicsWindow::open_window(), eglGraphicsWindow::open_window(), and output().

bool WindowProperties::get_raw_mice ( ) const [inline]

Returns true if the window reads the raw mice.

Definition at line 488 of file windowProperties.I.

Referenced by add_properties(), x11GraphicsWindow::open_window(), eglGraphicsWindow::open_window(), and output().

const string & WindowProperties::get_title ( ) const [inline]
bool WindowProperties::get_undecorated ( ) const [inline]

Returns true if the window has no border.

Definition at line 250 of file windowProperties.I.

Referenced by add_properties(), WinGraphicsWindow::make_style(), output(), and x11GraphicsWindow::set_wm_properties().

int WindowProperties::get_x_origin ( ) const [inline]
int WindowProperties::get_x_size ( ) const [inline]
int WindowProperties::get_y_origin ( ) const [inline]
int WindowProperties::get_y_size ( ) const [inline]
WindowProperties::ZOrder WindowProperties::get_z_order ( ) const [inline]
bool WindowProperties::has_cursor_filename ( ) const [inline]
bool WindowProperties::has_cursor_hidden ( ) const [inline]
bool WindowProperties::has_fixed_size ( ) const [inline]

Returns true if set_fixed_size() has been specified.

Definition at line 308 of file windowProperties.I.

Referenced by add_properties(), and output().

bool WindowProperties::has_foreground ( ) const [inline]
bool WindowProperties::has_fullscreen ( ) const [inline]
bool WindowProperties::has_icon_filename ( ) const [inline]

Returns true if set_icon_filename() has been specified.

Definition at line 637 of file windowProperties.I.

Referenced by add_properties(), and output().

bool WindowProperties::has_minimized ( ) const [inline]
bool WindowProperties::has_open ( ) const [inline]

Returns true if set_open() has been specified.

Definition at line 546 of file windowProperties.I.

Referenced by add_properties(), output(), and GraphicsWindow::set_properties_now().

bool WindowProperties::has_origin ( ) const [inline]
bool WindowProperties::has_parent_window ( ) const [inline]

Checks the S_parent_window specification from the properties.

Definition at line 845 of file windowProperties.I.

Referenced by add_properties(), and output().

bool WindowProperties::has_raw_mice ( ) const [inline]

Returns true if set_raw_mice() has been specified.

Definition at line 498 of file windowProperties.I.

Referenced by add_properties(), and output().

bool WindowProperties::has_size ( ) const [inline]
bool WindowProperties::has_title ( ) const [inline]
bool WindowProperties::has_undecorated ( ) const [inline]

Returns true if set_undecorated() has been specified.

Definition at line 260 of file windowProperties.I.

Referenced by add_properties(), and output().

bool WindowProperties::has_z_order ( ) const [inline]
bool WindowProperties::is_any_specified ( ) const [inline]

Returns true if any properties have been specified, false otherwise.

Definition at line 52 of file windowProperties.I.

Referenced by GraphicsWindow::process_events(), x11GraphicsWindow::set_properties_now(), WinGraphicsWindow::set_properties_now(), and eglGraphicsWindow::set_properties_now().

void WindowProperties::output ( ostream &  out) const
void WindowProperties::set_cursor_filename ( const Filename cursor_filename) [inline]

Specifies the file that contains the icon to associate with the mouse cursor when it is within the window (and visible).

Definition at line 661 of file windowProperties.I.

Referenced by add_properties(), get_config_properties(), x11GraphicsWindow::set_properties_now(), and WinGraphicsWindow::set_properties_now().

void WindowProperties::set_cursor_hidden ( bool  cursor_hidden) [inline]
void WindowProperties::set_default ( const WindowProperties default_properties) [static]

Replaces the "default" WindowProperties with the specified structure.

The specified WindowProperties will be returned by future calls to get_default(), until clear_default() is called.

Note that this completely replaces the default properties; it is not additive.

Definition at line 128 of file windowProperties.cxx.

void WindowProperties::set_fixed_size ( bool  fixed_size) [inline]

Specifies whether the window should be resizable by the user.

Definition at line 282 of file windowProperties.I.

Referenced by add_properties(), and get_config_properties().

void WindowProperties::set_foreground ( bool  foreground) [inline]

Specifies whether the window should be opened in the foreground (true), or left in the background (false).

Definition at line 379 of file windowProperties.I.

Referenced by add_properties(), x11GraphicsWindow::process_events(), eglGraphicsWindow::process_events(), WinGraphicsWindow::set_properties_now(), and WinGraphicsWindow::window_proc().

void WindowProperties::set_fullscreen ( bool  fullscreen) [inline]

Specifies whether the window should be opened in fullscreen mode (true) or normal windowed mode (false, the default).

Definition at line 331 of file windowProperties.I.

Referenced by add_properties(), get_config_properties(), GraphicsWindow::GraphicsWindow(), x11GraphicsWindow::set_properties_now(), WinGraphicsWindow::set_properties_now(), and eglGraphicsWindow::set_properties_now().

void WindowProperties::set_icon_filename ( const Filename icon_filename) [inline]

Specifies the file that contains the icon to associate with the window when it is minimized.

Definition at line 614 of file windowProperties.I.

Referenced by add_properties(), and get_config_properties().

void WindowProperties::set_minimized ( bool  minimized) [inline]

Specifies whether the window should be created minimized (true), or normal (false).

Definition at line 426 of file windowProperties.I.

Referenced by add_properties(), GraphicsWindow::GraphicsWindow(), x11GraphicsWindow::process_events(), eglGraphicsWindow::process_events(), WinGraphicsWindow::set_properties_now(), and WinGraphicsWindow::window_proc().

void WindowProperties::set_mouse_mode ( MouseMode  mode) [inline]

Specifies the mode in which the window is to operate its mouse pointer.

The default is M_absolute, which is the normal mode in which a mouse pointer operates; but you can also set M_relative, which is particularly useful for FPS-style mouse movements where you have hidden the mouse pointer and are are more interested in how fast the mouse is moving, rather than precisely where the pointer is hovering.

This has no effect on Windows, which does not have this concept; but is important to do on OSX and Unix/X11 to properly enable a smooth FPS-style mouselook mode. On Unix/X11, this requires the Xxf86dga extension to be available.

Definition at line 768 of file windowProperties.I.

Referenced by add_properties(), get_config_properties(), and GraphicsWindow::set_properties_now().

void WindowProperties::set_open ( bool  open) [inline]
void WindowProperties::set_origin ( int  x_origin,
int  y_origin 
) [inline]
void WindowProperties::set_parent_window ( size_t  parent)

Specifies the window that this window should be attached to.

This is a deprecated variant on this method, and exists only for backward compatibility. Future code should use the version of set_parent_window() below that receives a WindowHandle object; that interface is much more robust.

In this deprecated variant, the actual value for "parent" is platform-specific. On Windows, it is the HWND of the parent window, cast to an unsigned integer. On X11, it is the Window pointer of the parent window, similarly cast. On OSX, this is the NSWindow pointer, which doesn't appear to work at all.

Definition at line 228 of file windowProperties.cxx.

Referenced by add_properties(), and get_config_properties().

void WindowProperties::set_parent_window ( WindowHandle parent_window = NULL) [inline]

Specifies the window that this window should be attached to.

If this is NULL or unspecified, the window will be created as a toplevel window on the desktop; if this is non-NULL, the window will be bound as a child window to the indicated parent window.

You should use GraphicsPipe::make_window_handle() to create an instance of a WindowHandle object given an appropriate OS-specific window handle representation. Each OS-specific GraphicsPipe class defines a make_window_handle() method that returns an appropriate WindowHandle object to wrap the particular OS-specific representation.

Definition at line 823 of file windowProperties.I.

void WindowProperties::set_raw_mice ( bool  raw_mice) [inline]

Specifies whether the window should read the raw mouse devices.

Definition at line 473 of file windowProperties.I.

Referenced by add_properties().

void WindowProperties::set_size ( int  x_size,
int  y_size 
) [inline]
void WindowProperties::set_title ( const string &  title) [inline]
void WindowProperties::set_undecorated ( bool  undecorated) [inline]

Specifies whether the window should be created with a visible title and border (false, the default) or not (true).

Definition at line 235 of file windowProperties.I.

Referenced by add_properties(), get_config_properties(), GraphicsWindow::GraphicsWindow(), and eglGraphicsWindow::set_properties_now().

void WindowProperties::set_z_order ( WindowProperties::ZOrder  z_order) [inline]

Specifies the relative ordering of the window with respect to other windows.

If the z_order is Z_top, the window will always be on top of other windows; if it is Z_bottom, it will always be below other windows. Most windows will want to be Z_normal, which allows the user to control the order.

Definition at line 711 of file windowProperties.I.

Referenced by add_properties(), get_config_properties(), x11GraphicsWindow::set_properties_now(), WinGraphicsWindow::set_properties_now(), and eglGraphicsWindow::set_properties_now().

WindowProperties WindowProperties::size ( int  x_size,
int  y_size 
) [static]

Returns a WindowProperties structure with only the size specified.

The size is the only property that matters to buffers.

Definition at line 157 of file windowProperties.cxx.

References set_size().

Referenced by GraphicsEngine::make_buffer(), GraphicsEngine::make_parasite(), and GraphicsOutput::make_texture_buffer().


The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations