/*
-Copyright (C) 2001-2006, William Joseph.
-All Rights Reserved.
+ Copyright (C) 2001-2006, William Joseph.
+ All Rights Reserved.
-This file is part of GtkRadiant.
+ This file is part of GtkRadiant.
-GtkRadiant 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.
+ GtkRadiant 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.
-GtkRadiant 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 General Public License for more details.
+ GtkRadiant 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 General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with GtkRadiant; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-*/
+ You should have received a copy of the GNU General Public License
+ along with GtkRadiant; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
-#if !defined(INCLUDED_GTKUTIL_WINDOW_H)
+#if !defined( INCLUDED_GTKUTIL_WINDOW_H )
#define INCLUDED_GTKUTIL_WINDOW_H
#include <gtk/gtkwindow.h>
#include "generic/callback.h"
#include "widget.h"
-inline gboolean window_focus_in_clear_focus_widget(GtkWidget* widget, GdkEventKey* event, gpointer data)
-{
- gtk_window_set_focus(GTK_WINDOW(widget), NULL);
- return FALSE;
+inline gboolean window_focus_in_clear_focus_widget( GtkWidget* widget, GdkEventKey* event, gpointer data ){
+ gtk_window_set_focus( GTK_WINDOW( widget ), NULL );
+ return FALSE;
}
-inline guint window_connect_focus_in_clear_focus_widget(GtkWindow* window)
-{
- return g_signal_connect(G_OBJECT(window), "focus_in_event", G_CALLBACK(window_focus_in_clear_focus_widget), NULL);
+inline guint window_connect_focus_in_clear_focus_widget( GtkWindow* window ){
+ return g_signal_connect( G_OBJECT( window ), "focus_in_event", G_CALLBACK( window_focus_in_clear_focus_widget ), NULL );
}
-unsigned int connect_floating(GtkWindow* main_window, GtkWindow* floating);
-GtkWindow* create_floating_window(const char* title, GtkWindow* parent);
-void destroy_floating_window(GtkWindow* window);
+unsigned int connect_floating( GtkWindow* main_window, GtkWindow* floating );
+GtkWindow* create_floating_window( const char* title, GtkWindow* parent );
+void destroy_floating_window( GtkWindow* window );
-GtkWindow* create_persistent_floating_window(const char* title, GtkWindow* main_window);
-gboolean persistent_floating_window_delete(GtkWindow* floating, GdkEvent *event, GtkWindow* main_window);
+GtkWindow* create_persistent_floating_window( const char* title, GtkWindow* main_window );
+gboolean persistent_floating_window_delete( GtkWindow* floating, GdkEvent *event, GtkWindow* main_window );
-void window_remove_minmax(GtkWindow* window);
+void window_remove_minmax( GtkWindow* window );
typedef struct _GtkScrolledWindow GtkScrolledWindow;
-GtkScrolledWindow* create_scrolled_window(GtkPolicyType hscrollbar_policy, GtkPolicyType vscrollbar_policy, int border = 0);
+GtkScrolledWindow* create_scrolled_window( GtkPolicyType hscrollbar_policy, GtkPolicyType vscrollbar_policy, int border = 0 );
struct WindowPosition
{
- int x, y, w, h;
-
- WindowPosition()
- {
- }
- WindowPosition(int _x, int _y, int _w, int _h)
- : x(_x), y(_y), w(_w), h(_h)
- {
- }
+ int x, y, w, h;
+
+ WindowPosition(){
+ }
+ WindowPosition( int _x, int _y, int _w, int _h )
+ : x( _x ), y( _y ), w( _w ), h( _h ){
+ }
};
-const WindowPosition c_default_window_pos(50, 25, 400, 300);
+const WindowPosition c_default_window_pos( 50, 25, 400, 300 );
-inline void window_get_position(GtkWindow* window, WindowPosition& position)
-{
- ASSERT_MESSAGE(window != 0, "error saving window position");
+inline void window_get_position( GtkWindow* window, WindowPosition& position ){
+ ASSERT_MESSAGE( window != 0, "error saving window position" );
- gtk_window_get_position(window, &position.x, &position.y);
- gtk_window_get_size(window, &position.w, &position.h);
+ gtk_window_get_position( window, &position.x, &position.y );
+ gtk_window_get_size( window, &position.w, &position.h );
}
-inline void window_set_position(GtkWindow* window, const WindowPosition& position)
-{
- gtk_window_set_gravity(window, GDK_GRAVITY_STATIC);
-
- GdkScreen* screen = gdk_screen_get_default();
- if(position.x < 0
- || position.y < 0
- || position.x > gdk_screen_get_width(screen)
- || position.y > gdk_screen_get_height(screen))
- {
- gtk_window_set_position(window, GTK_WIN_POS_CENTER_ON_PARENT);
- }
- else
- {
- gtk_window_move(window, position.x, position.y);
- }
-
- gtk_window_set_default_size(window, position.w, position.h);
+inline void window_set_position( GtkWindow* window, const WindowPosition& position ){
+ gtk_window_set_gravity( window, GDK_GRAVITY_STATIC );
+
+ GdkScreen* screen = gdk_screen_get_default();
+ if ( position.x < 0
+ || position.y < 0
+ || position.x > gdk_screen_get_width( screen )
+ || position.y > gdk_screen_get_height( screen ) ) {
+ gtk_window_set_position( window, GTK_WIN_POS_CENTER_ON_PARENT );
+ }
+ else
+ {
+ gtk_window_move( window, position.x, position.y );
+ }
+
+ gtk_window_set_default_size( window, position.w, position.h );
}
-inline void WindowPosition_Parse(WindowPosition& position, const char* value)
-{
- if(sscanf(value, "%d %d %d %d", &position.x, &position.y, &position.w, &position.h) != 4)
- {
- position = WindowPosition(c_default_window_pos); // ensure sane default value for window position
- }
+inline void WindowPosition_Parse( WindowPosition& position, const char* value ){
+ if ( sscanf( value, "%d %d %d %d", &position.x, &position.y, &position.w, &position.h ) != 4 ) {
+ position = WindowPosition( c_default_window_pos ); // ensure sane default value for window position
+ }
}
typedef ReferenceCaller1<WindowPosition, const char*, WindowPosition_Parse> WindowPositionImportStringCaller;
-inline void WindowPosition_Write(const WindowPosition& position, const StringImportCallback& importCallback)
-{
- char buffer[64];
- sprintf(buffer, "%d %d %d %d", position.x, position.y, position.w, position.h);
- importCallback(buffer);
+inline void WindowPosition_Write( const WindowPosition& position, const StringImportCallback& importCallback ){
+ char buffer[64];
+ sprintf( buffer, "%d %d %d %d", position.x, position.y, position.w, position.h );
+ importCallback( buffer );
}
typedef ConstReferenceCaller1<WindowPosition, const StringImportCallback&, WindowPosition_Write> WindowPositionExportStringCaller;
class WindowPositionTracker
{
- WindowPosition m_position;
+WindowPosition m_position;
- static gboolean configure(GtkWidget* widget, GdkEventConfigure *event, WindowPositionTracker* self)
- {
- self->m_position = WindowPosition(event->x, event->y, event->width, event->height);
- return FALSE;
- }
+static gboolean configure( GtkWidget* widget, GdkEventConfigure *event, WindowPositionTracker* self ){
+ self->m_position = WindowPosition( event->x, event->y, event->width, event->height );
+ return FALSE;
+}
public:
- WindowPositionTracker()
- : m_position(c_default_window_pos)
- {
- }
-
- void sync(GtkWindow* window)
- {
- window_set_position(window, m_position);
- }
-
- void connect(GtkWindow* window)
- {
- sync(window);
- g_signal_connect(G_OBJECT(window), "configure_event", G_CALLBACK(configure), this);
- }
-
- const WindowPosition& getPosition() const
- {
- return m_position;
- }
-
- //hack
- void setPosition(const WindowPosition& position)
- {
- m_position = position;
- }
+WindowPositionTracker()
+ : m_position( c_default_window_pos ){
+}
+
+void sync( GtkWindow* window ){
+ window_set_position( window, m_position );
+}
+
+void connect( GtkWindow* window ){
+ sync( window );
+ g_signal_connect( G_OBJECT( window ), "configure_event", G_CALLBACK( configure ), this );
+}
+
+const WindowPosition& getPosition() const {
+ return m_position;
+}
+
+//hack
+void setPosition( const WindowPosition& position ){
+ m_position = position;
+}
};
-inline void WindowPositionTracker_importString(WindowPositionTracker& self, const char* value)
-{
- WindowPosition position;
- WindowPosition_Parse(position, value);
- self.setPosition(position);
+inline void WindowPositionTracker_importString( WindowPositionTracker& self, const char* value ){
+ WindowPosition position;
+ WindowPosition_Parse( position, value );
+ self.setPosition( position );
}
typedef ReferenceCaller1<WindowPositionTracker, const char*, WindowPositionTracker_importString> WindowPositionTrackerImportStringCaller;
-inline void WindowPositionTracker_exportString(const WindowPositionTracker& self, const StringImportCallback& importer)
-{
- WindowPosition_Write(self.getPosition(), importer);
+inline void WindowPositionTracker_exportString( const WindowPositionTracker& self, const StringImportCallback& importer ){
+ WindowPosition_Write( self.getPosition(), importer );
}
typedef ConstReferenceCaller1<WindowPositionTracker, const StringImportCallback&, WindowPositionTracker_exportString> WindowPositionTrackerExportStringCaller;