effects.h File Reference

"Special effects" other than compositor effects. More...

Go to the source code of this file.

Typedefs

typedef void(* MetaEffectFinished )(gpointer data)
 A callback which will be called when the effect has finished.

Enumerations

enum  MetaEffectType {
  META_EFFECT_MINIMIZE, META_EFFECT_UNMINIMIZE, META_EFFECT_FOCUS, META_EFFECT_CLOSE,
  META_NUM_EFFECTS
}

Functions

void meta_effect_run_minimize (MetaWindow *window, MetaRectangle *window_rect, MetaRectangle *target, MetaEffectFinished finished, gpointer data)
 Performs the minimize effect.
void meta_effect_run_unminimize (MetaWindow *window, MetaRectangle *window_rect, MetaRectangle *icon_rect, MetaEffectFinished finished, gpointer data)
 Performs the unminimize effect.
void meta_effect_run_close (MetaWindow *window, MetaEffectFinished finished, gpointer data)
 Performs the close effect.
void meta_effect_run_focus (MetaWindow *window, MetaEffectFinished finished, gpointer data)
 Performs the focus effect.
void meta_effects_begin_wireframe (MetaScreen *screen, const MetaRectangle *rect, int width, int height)
 Grabs the server and paints a wireframe rectangle on the screen.
void meta_effects_update_wireframe (MetaScreen *screen, const MetaRectangle *old_rect, int old_width, int old_height, const MetaRectangle *new_rect, int new_width, int new_height)
 Moves a wireframe rectangle around after its creation by meta_effects_begin_wireframe().
void meta_effects_end_wireframe (MetaScreen *screen, const MetaRectangle *old_rect, int width, int height)
 Removes a wireframe rectangle from the screen and ends the grab started by meta_effects_begin_wireframe().


Detailed Description

"Special effects" other than compositor effects.

Before we had a serious compositor, we supported swooping rectangles for minimising and so on. These are still supported today, even when the compositor is enabled. The file contains two parts:

1) A set of functions, each of which implements a special effect. (Only the minimize function does anything interesting; we should probably get rid of the rest.)

2) A set of functions for moving a highlighted wireframe box around the screen, optionally with height and width shown in the middle. This is used for moving and resizing when reduced_resources is set.

There was formerly a system which allowed callers to drop in their own handlers for various things; it was never used (people who want their own handlers can just modify this file, after all) and it added a good deal of extra complexity, so it has been removed. If you want it, it can be found in svn r3769.

Definition in file effects.h.


Typedef Documentation

typedef void(* MetaEffectFinished)(gpointer data)

A callback which will be called when the effect has finished.

Definition at line 63 of file effects.h.


Enumeration Type Documentation

Enumerator:
META_EFFECT_MINIMIZE 
META_EFFECT_UNMINIMIZE 
META_EFFECT_FOCUS 
META_EFFECT_CLOSE 
META_NUM_EFFECTS 

Definition at line 51 of file effects.h.


Function Documentation

void meta_effect_run_close ( MetaWindow window,
MetaEffectFinished  finished,
gpointer  data 
)

Performs the close effect.

There is no such effect. FIXME: delete this.

Parameters:
window The window we're moving
finished Callback for when it's finished
data Data for callback

Definition at line 246 of file effects.c.

References create_effect(), META_EFFECT_CLOSE, NULL, and run_handler().

Referenced by event_callback().

void meta_effect_run_focus ( MetaWindow window,
MetaEffectFinished  finished,
gpointer  data 
)

Performs the focus effect.

There is no such effect. FIXME: delete this.

Parameters:
window The window we're moving
finished Callback for when it's finished
data Data for callback

Definition at line 192 of file effects.c.

References create_effect(), META_EFFECT_FOCUS, NULL, and run_handler().

Referenced by meta_window_focus().

void meta_effect_run_minimize ( MetaWindow window,
MetaRectangle window_rect,
MetaRectangle target,
MetaEffectFinished  finished,
gpointer  data 
)

Performs the minimize effect.

Parameters:
window The window we're moving
window_rect Its current state
target Where it should end up
finished Callback for when it's finished
data Data for callback

Definition at line 206 of file effects.c.

References create_effect(), MetaMinimizeEffect::icon_rect, META_EFFECT_MINIMIZE, MetaEffect::minimize, NULL, run_handler(), MetaEffect::u, and MetaMinimizeEffect::window_rect.

Referenced by implement_showing().

void meta_effect_run_unminimize ( MetaWindow window,
MetaRectangle window_rect,
MetaRectangle icon_rect,
MetaEffectFinished  finished,
gpointer  data 
)

Performs the unminimize effect.

There is no such effect. FIXME: delete this.

Parameters:
window The window we're moving
icon_rect Its current state
window_rect Where it should end up
finished Callback for when it's finished
data Data for callback

Definition at line 226 of file effects.c.

References create_effect(), MetaMinimizeEffect::icon_rect, META_EFFECT_UNMINIMIZE, MetaEffect::minimize, NULL, run_handler(), MetaEffect::u, and MetaMinimizeEffect::window_rect.

Referenced by meta_window_show().

void meta_effects_begin_wireframe ( MetaScreen screen,
const MetaRectangle rect,
int  width,
int  height 
)

Grabs the server and paints a wireframe rectangle on the screen.

Since this involves starting a grab, please be considerate of other users and don't keep the grab for long. You may move the wireframe around using meta_effects_update_wireframe() and remove it, and undo the grab, using meta_effects_end_wireframe().

Parameters:
screen The screen to draw the rectangle on.
rect The size of the rectangle to draw.
width The width to display in the middle (or 0 not to)
height The width to display in the middle (or 0 not to)

Definition at line 517 of file effects.c.

References _MetaScreen::display, meta_display_grab(), meta_effects_update_wireframe(), meta_ui_push_delay_exposes(), NULL, and _MetaScreen::ui.

Referenced by meta_window_begin_wireframe().

void meta_effects_end_wireframe ( MetaScreen screen,
const MetaRectangle old_rect,
int  width,
int  height 
)

Removes a wireframe rectangle from the screen and ends the grab started by meta_effects_begin_wireframe().

Parameters:
old_rect Where the rectangle is now
old_width The width that was displayed on it (or 0 if there wasn't)
old_height The height that was displayed on it (or 0 if there wasn't)

Definition at line 698 of file effects.c.

References _MetaScreen::display, meta_display_ungrab(), meta_effects_update_wireframe(), meta_ui_pop_delay_exposes(), NULL, and _MetaScreen::ui.

Referenced by meta_window_end_wireframe().

void meta_effects_update_wireframe ( MetaScreen screen,
const MetaRectangle old_rect,
int  old_width,
int  old_height,
const MetaRectangle new_rect,
int  new_width,
int  new_height 
)

Moves a wireframe rectangle around after its creation by meta_effects_begin_wireframe().

(Perhaps we ought to remember the old positions and not require people to pass them in?)

Parameters:
old_rect Where the rectangle is now
old_width The width that was displayed on it (or 0 if there wasn't)
old_height The height that was displayed on it (or 0 if there wasn't)
new_rect Where the rectangle is going
new_width The width that will be displayed on it (or 0 not to)
new_height The height that will be displayed on it (or 0 not to)

Definition at line 680 of file effects.c.

References _MetaScreen::display, draw_xor_rect(), and _MetaDisplay::xdisplay.

Referenced by meta_effects_begin_wireframe(), meta_effects_end_wireframe(), and meta_window_update_wireframe().


Generated on Sat Aug 23 22:04:20 2008 for metacity by  doxygen 1.5.5