Reference Manual
Inti Logo
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members

box.h

Go to the documentation of this file.
00001 /*  Inti: Integrated Foundation Classes
00002  *  Copyright (C) 2002 The Inti Development Team.
00003  *
00004  *  This program is free software; you can redistribute it and/or modify
00005  *  it under the terms of the GNU General Public License as published by
00006  *  the Free Software Foundation; either version 2 of the License, or
00007  *  (at your option) any later version.
00008  *
00009  *  This program is distributed in the hope that it will be useful,
00010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012  *  GNU Library General Public License for more details.
00013  *
00014  *  You should have received a copy of the GNU Library General Public License
00015  *  along with this program; if not, write to the Free Software
00016  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00017  */
00018  
00025 
00026 #ifndef INTI_GTK_BOX_H
00027 #define INTI_GTK_BOX_H
00028 
00029 #ifndef INTI_GTK_CONTAINER_H
00030 #include <inti/gtk/container.h>
00031 #endif
00032 
00033 #ifndef __GTK_HBOX_H__
00034 #include <gtk/gtkhbox.h>
00035 #endif
00036 
00037 #ifndef __GTK_VBOX_H__
00038 #include <gtk/gtkvbox.h>
00039 #endif
00040 
00041 namespace Inti {
00042 
00043 namespace Gtk {
00044 
00045 class BoxClass;
00046 class HBoxClass;
00047 class VBoxClass;
00048 
00055 
00056 class BoxChild
00057 {
00058         friend class none;
00059 
00060         BoxChild();
00061         BoxChild(const BoxChild&);
00062         BoxChild& operator=(const BoxChild&);
00063         
00064         GtkBoxChild child_;
00065 
00066 public:
00069 
00070         GtkBoxChild* gtk_box_child() const { return const_cast<GtkBoxChild*>(&child_); }
00072 
00073         Widget* widget() const;
00077 
00078         bool expand() const { return child_.expand; }
00085 
00086         bool fill() const { return child_.fill; }
00093 
00094         unsigned int padding() const { return child_.padding; }
00100 
00101         PackType pack() const { return (PackType)child_.pack; }
00107 
00109 };
00110 
00139 
00140 class Box : public Container
00141 {
00142         friend class G::Object;
00143         friend class BoxClass;
00144 
00145         Box(const Box&);
00146         Box& operator=(const Box&);
00147         
00148 protected:
00151 
00152         Box();
00154 
00155         explicit Box(GtkBox *box, bool reference = false);
00162 
00163         virtual ~Box() = 0;
00165         
00167 //  Properties
00168 
00169         typedef G::Property<int> SpacingPropertyType;
00170         typedef G::PropertyProxy<G::Object, SpacingPropertyType> SpacingPropertyProxy;
00171         static const SpacingPropertyType spacing_property;
00172 
00173         typedef G::Property<bool> HomogeneousPropertyType;
00174         typedef G::PropertyProxy<G::Object, HomogeneousPropertyType> HomogeneousPropertyProxy;
00175         static const HomogeneousPropertyType homogeneous_property;
00176 
00177         typedef Gtk::ChildProperty<bool> ExpandPropertyType;
00178         typedef Gtk::ChildPropertyProxy<Container, ExpandPropertyType> ExpandPropertyProxy;
00179         static const ExpandPropertyType expand_property;
00180 
00181         typedef Gtk::ChildProperty<bool> FillPropertyType;
00182         typedef Gtk::ChildPropertyProxy<Container, FillPropertyType> FillPropertyProxy;
00183         static const FillPropertyType fill_property;
00184 
00185         typedef Gtk::ChildProperty<unsigned int> PaddingPropertyType;
00186         typedef Gtk::ChildPropertyProxy<Container, PaddingPropertyType> PaddingPropertyProxy;
00187         static const PaddingPropertyType padding_property;
00188 
00189         typedef Gtk::ChildProperty<PackType, int> PackTypePropertyType;
00190         typedef Gtk::ChildPropertyProxy<Container, PackTypePropertyType> PackTypePropertyProxy;
00191         static const PackTypePropertyType pack_type_property;
00192 
00193         typedef Gtk::ChildProperty<int> PositionPropertyType;
00194         typedef Gtk::ChildPropertyProxy<Container, PositionPropertyType> PositionPropertyProxy;
00195         static const PositionPropertyType position_property;
00196 
00197 public:
00200 
00201         GtkBox* gtk_box() const { return (GtkBox*)instance; }
00203 
00204         GtkBoxClass* gtk_box_class() const;
00206 
00207         operator GtkBox* () const;
00209 
00210         bool children(std::vector<BoxChild*>& child_list) const;
00217 
00218         bool get_homogeneous() const;
00221 
00222         int get_spacing() const;
00225         
00229 
00230         void pack_start(Widget& child, bool expand = true, bool fill = true, unsigned int padding = 0);
00246         
00247         void pack_end(Widget& child, bool expand = true, bool fill = true, unsigned int padding = 0);
00263 
00264         void insert_start(Widget& child, int position, bool expand = true, bool fill = true, unsigned int padding = 0);
00282 
00283         void insert_end(Widget& child, int position, bool expand = true, bool fill = true, unsigned int padding = 0);
00301 
00302         void set_homogeneous(bool homogeneous);
00307 
00308         void set_spacing(int spacing);
00311 
00312         void reorder_child(Widget& child, int position);
00324 
00325         void query_child_packing(Widget& child, bool *expand, bool *fill, unsigned int *padding, PackType *pack_type) const;
00332 
00333         void set_child_packing(Widget& child, bool expand, bool fill, unsigned int padding, PackType pack_type);
00340 
00344 
00345         const SpacingPropertyProxy prop_spacing()
00346         {
00347                 return SpacingPropertyProxy(this, &spacing_property);
00348         }
00350 
00351         const HomogeneousPropertyProxy prop_homogeneous()
00352         {
00353                 return HomogeneousPropertyProxy(this, &homogeneous_property);
00354         }
00356 
00360 
00361         const ExpandPropertyProxy prop_expand()
00362         {
00363                 return ExpandPropertyProxy(this, &expand_property);
00364         }
00366 
00367 
00368         const FillPropertyProxy prop_fill()
00369         {
00370                 return FillPropertyProxy(this, &fill_property);
00371         }
00373 
00374         const PaddingPropertyProxy prop_padding()
00375         {
00376 
00377                 return PaddingPropertyProxy(this, &padding_property);
00378         }
00380 
00381         const PackTypePropertyProxy prop_pack_type()
00382         {
00383                 return PackTypePropertyProxy(this, &pack_type_property);
00384         }
00386 
00387         const PositionPropertyProxy prop_position()
00388         {
00389                 return PositionPropertyProxy(this, &position_property);
00390         }
00392 
00394 
00395 };
00396 
00403 
00404 class HBox : public Box
00405 {
00406         friend class G::Object;
00407         friend class HBoxClass;
00408 
00409         HBox(const HBox&);
00410         HBox& operator=(const HBox&);
00411 
00412 protected:
00415 
00416         explicit HBox(GtkHBox *hbox, bool reference = false);
00423 
00425 
00426 public:
00429 
00430         explicit HBox(bool homogeneous = false, int spacing = 0);
00434 
00435         virtual ~HBox();
00436 
00438         
00442 
00443         GtkHBox* gtk_hbox() const { return (GtkHBox*)instance; }
00445 
00446         GtkHBoxClass* gtk_hbox_class() const;
00448 
00449         operator GtkHBox* () const;
00451 
00453 };
00454 
00461 
00462 class VBox : public Box
00463 {
00464         friend class G::Object;
00465         friend class VBoxClass;
00466 
00467         VBox(const VBox&);
00468         VBox& operator=(const VBox&);
00469 
00470 protected:
00473 
00474         explicit VBox(GtkVBox *vbox, bool reference = false);
00481 
00483 
00484 public:
00487 
00488         explicit VBox(bool homogeneous = false, int spacing = 0);
00492 
00493         virtual ~VBox();
00495         
00499         
00500         GtkVBox* gtk_vbox() const { return (GtkVBox*)instance; }
00502 
00503         GtkVBoxClass* gtk_vbox_class() const;
00505 
00506         operator GtkVBox* () const;
00508 
00510 };
00511 
00512 } // namespace Gtk
00513 
00514 } // namespace Inti
00515 
00516 #endif // INTI_GTK_BOX_H
00517 
00518 
Main Page - Footer


Generated on Sun Sep 14 20:08:02 2003 for Inti by doxygen 1.3.2 written by Dimitri van Heesch, © 1997-2002