90 lines
3.5 KiB
C
90 lines
3.5 KiB
C
/***************************************************************************
|
|
gui.h - description
|
|
-------------------
|
|
begin : Fri Oct 11 2002
|
|
copyright : (C) 2002 by Michael Speck
|
|
email : kulkanie@gmx.net
|
|
***************************************************************************/
|
|
|
|
/***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#ifndef __GUI_H
|
|
#define __GUI_H
|
|
|
|
#include "gui_widget.h"
|
|
#include "gui_box.h"
|
|
#include "gui_label.h"
|
|
#include "gui_icon.h"
|
|
#include "gui_button.h"
|
|
#include "gui_radiogroup.h"
|
|
#include "gui_progressbar.h"
|
|
#include "gui_scrollbar.h"
|
|
#include "gui_edit.h"
|
|
#include "gui_list.h"
|
|
#include "gui_spinbutton.h"
|
|
|
|
/*
|
|
====================================================================
|
|
GUI
|
|
====================================================================
|
|
*/
|
|
|
|
/*
|
|
====================================================================
|
|
Initiate the GUI and load the theme either from stk's surface
|
|
path or an absolute position. This must be done before any widget
|
|
is created. gui_init() installs gui_finalize() as exit function.
|
|
====================================================================
|
|
*/
|
|
void gui_init( char *theme_path );
|
|
|
|
/*
|
|
====================================================================
|
|
Finalize GUI and free any memory allocated by gui_init(). Also
|
|
delete all widgets that were not destroyed at this point.
|
|
====================================================================
|
|
*/
|
|
void gui_finalize( void );
|
|
|
|
/*
|
|
====================================================================
|
|
Handle SDL and time event for visible root widgets.
|
|
If 'event' is not NULL and it is handled by one of the root widgets
|
|
True is returned or False otherwise. If a widget within this queue
|
|
has 'grab_input' set True 'event' is not handled by lower level
|
|
widgets and True is returned.
|
|
'ms' is the amount of milliseconds passed since the last call from
|
|
gui_dispatch_event(). If 'ms' > 0 a GUI_TIME_PASSED event is sent
|
|
to all widgets that enabled the GUI_TIME_PASSED event.
|
|
The GUI_TIME_PASSED event is send regardless of 'grab_input'.
|
|
====================================================================
|
|
*/
|
|
int gui_dispatch_event( SDL_Event *event, int ms );
|
|
|
|
/*
|
|
====================================================================
|
|
Run all visible root widgets until the 'master' widget is closed.
|
|
If there is no root widget open gui_run() will immediately exit.
|
|
If 'master' is 0 the gui is run until all root widgets are closed.
|
|
====================================================================
|
|
*/
|
|
void gui_run( GuiWidget *master );
|
|
|
|
/*
|
|
====================================================================
|
|
Install a special event filter to improve usage of scrollbars.
|
|
gui_disable_event_filter() restores the previous filter.
|
|
====================================================================
|
|
*/
|
|
void gui_enable_event_filter();
|
|
void gui_disable_event_filter();
|
|
|
|
#endif
|