/*
This source file is part of Scol
For the latest info, see http://www.scolring.org

Copyright (c) 2010 Stephane Bisaro, aka Iri <iri@irizone.net>

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place - Suite 330, Boston, MA 02111-1307, USA, or go to
http://www.gnu.org/copyleft/lesser.txt

For others informations, please contact us from http://www.scolring.org/
*/


/*
    WARNING !

    To activate or deactivate the debug mode
    change directives to scol_gtk_error.c
*/




#ifndef __MAIN_H__
#define __MAIN_H__

#define SCOL_GTK_2


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <libgen.h>
#include <gtk/gtk.h>

#if ((defined __WIN32__) || (defined WIN32))
#include <windows.h>
#include "scol_plugin_win.h"
#else
#include "scol_plugin_lin.h"
#endif


#include "macros.h"
#include "scol_gtk_structures.h"
#include "scol_gtk_memory.h"
#include "scol_gtk_reflex.h"
#include "version.h"





void scol_gtk_common_object_type (GtkWidget *widget, char *s, size_t len);


int ObjGtkWidgetType;
/*int ObjGtkStyleType;*/
int ObjGtkPixType;
#define OBJ2DGTK_WIDGET_HANDLE              0
#define OBJ2DGTK_PIX_HANDLE                 0



#define SCOL_WIDGET_TYPE_UNKNOWN            -1
#define SCOL_WIDGET_TYPE_WINDOW             0
#define SCOL_WIDGET_TYPE_BUTTON             10
#define SCOL_WIDGET_TYPE_BOX                20


#define SCOL_WIDGET_SUBTYPE_UNKNOWN         -1

#define SCOL_WIDGET_SUBTYPE_WINDOWTOP       0

#define SCOL_WIDGET_SUBTYPE_BUTTONEMPTY     10
#define SCOL_WIDGET_SUBTYPE_BUTTONLABEL     11
#define SCOL_WIDGET_SUBTYPE_BUTTONMNEMO     12
#define SCOL_WIDGET_SUBTYPE_BUTTONSTOCK     13
#define SCOL_WIDGET_SUBTYPE_BUTTONLINK      14
#define SCOL_WIDGET_SUBTYPE_BUTTONCHECK     15
#define SCOL_WIDGET_SUBTYPE_BUTTONTOGGLE    16
#define SCOL_WIDGET_SUBTYPE_BUTTONSWITCH    17
#define SCOL_WIDGET_SUBTYPE_BUTTONRADIO     18

#define SCOL_WIDGET_SUBTYPE_BOXHORIZ        20
#define SCOL_WIDGET_SUBTYPE_BOXVERT         21





/* Commons flags */
#define WIDGET_WITH_SIMPLETEXT         1
#define WIDGET_WITH_MNEMONIC           2
#define WIDGET_WITH_MARKUP             3


#define WINDOW_NOTSHOWN                1
#define WINDOW_ICONIFIED               2
#define WINDOW_MAXIMIZED               3
#define WINDOW_STICKY                  4
#define WINDOW_FULLSCREEN              5
#define WINDOW_ABOVE                   6
#define WINDOW_BELOW                   7
#define WINDOW_STATE_UNKNOWN           100



/* Devices */
/* Device -> Pointer */
#define DEVICE_MOUSE                   1
#define DEVICE_PEN                     2
#define DEVICE_ERASER                  3
#define DEVICE_CURSOR                  4
#define DEVICE_KEYBOARD                5
#define DEVICE_UNKNOWN                 10



/* Icons */
/* Icons size (See src/scol_gtk_image.c too) */
#define ICON_SIZE_MENU                  0
#define ICON_SIZE_SMALL_TOOLBAR         1
#define ICON_SIZE_LARGE_TOOLBAR         2
#define ICON_SIZE_BUTTON                3
#define ICON_SIZE_DND                   4
#define ICON_SIZE_DIALOG                5


#define DEFAULT_STRING   "Untitle"

#endif  /* __MAIN_H__ */
