New "pizza" widget implementation. Window border widths now match the GtkStyle they are drawn with.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49687 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Paul Cornett
2007-11-06 18:14:15 +00:00
parent 1ca1b2b88f
commit 08f53168ac
17 changed files with 183 additions and 298 deletions

View File

@@ -1,88 +1,34 @@
/* ///////////////////////////////////////////////////////////////////////////
// Name: win_gtk.h
// Purpose: wxWidgets's GTK base widget = GtkPizza
// Purpose: native GTK+ widget for wxWindow
// Author: Robert Roebling
// Id: $Id$
// Copyright: (c) 1998 Robert Roebling
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////// */
#ifndef _WX_GTK_PIZZA_H_
#define _WX_GTK_PIZZA_H_
#ifndef __GTK_PIZZA_H__
#define __GTK_PIZZA_H__
#include <gtk/gtkfixed.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#define WX_PIZZA(obj) G_TYPE_CHECK_INSTANCE_CAST(obj, wxPizza::type(), wxPizza)
#define WX_IS_PIZZA(obj) G_TYPE_CHECK_INSTANCE_TYPE(obj, wxPizza::type())
#include <gtk/gtkcontainer.h>
#include "wx/dlimpexp.h"
#define GTK_PIZZA(obj) GTK_CHECK_CAST (obj, gtk_pizza_get_type (), GtkPizza)
#define GTK_IS_PIZZA(obj) GTK_CHECK_TYPE (obj, gtk_pizza_get_type ())
typedef struct _GtkPizza GtkPizza;
struct _GtkPizza
struct WXDLLIMPEXP_CORE wxPizza
{
GtkContainer container;
GList *children;
static GtkWidget* New(long windowStyle = 0);
static GType type();
void move(GtkWidget* widget, int x, int y);
void scroll(int dx, int dy);
void get_border_widths(int& x, int& y);
guint m_xoffset;
guint m_yoffset;
gboolean m_noscroll;
GdkWindow *bin_window;
GtkFixed m_fixed;
GdkWindow* m_backing_window;
int m_scroll_x;
int m_scroll_y;
int m_border_style;
bool m_is_scrollable;
};
WXDLLIMPEXP_CORE
GtkType gtk_pizza_get_type (void);
WXDLLIMPEXP_CORE
GtkWidget* gtk_pizza_new (void);
WXDLLIMPEXP_CORE
GtkWidget* gtk_pizza_new_no_scroll (void);
/* accessors */
WXDLLIMPEXP_CORE
gint gtk_pizza_get_xoffset (GtkPizza *pizza);
WXDLLIMPEXP_CORE
gint gtk_pizza_get_yoffset (GtkPizza *pizza);
WXDLLIMPEXP_CORE
void gtk_pizza_set_xoffset (GtkPizza *pizza, gint xoffset);
WXDLLIMPEXP_CORE
void gtk_pizza_set_yoffset (GtkPizza *pizza, gint yoffset);
WXDLLIMPEXP_CORE
gint gtk_pizza_get_rtl_offset (GtkPizza *pizza);
WXDLLIMPEXP_CORE
void gtk_pizza_scroll (GtkPizza *pizza,
gint dx,
gint dy);
WXDLLIMPEXP_CORE
void gtk_pizza_put (GtkPizza *pizza,
GtkWidget *widget,
gint x,
gint y,
gint width,
gint height);
WXDLLIMPEXP_CORE
void gtk_pizza_set_size (GtkPizza *pizza,
GtkWidget *widget,
gint x,
gint y,
gint width,
gint height);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __GTK_PIZZA_H__ */
#endif // _WX_GTK_PIZZA_H_