r3037 - software/ui/src
Miriam Ruiz
baby-guest at alioth.debian.org
Wed Jun 20 20:16:39 UTC 2007
Author: baby-guest
Date: 2007-06-20 20:16:39 +0000 (Wed, 20 Jun 2007)
New Revision: 3037
Modified:
software/ui/src/pkgbrowser.cpp
software/ui/src/pkgbrowser.h
Log:
Improved browser
Modified: software/ui/src/pkgbrowser.cpp
===================================================================
--- software/ui/src/pkgbrowser.cpp 2007-06-20 19:42:11 UTC (rev 3036)
+++ software/ui/src/pkgbrowser.cpp 2007-06-20 20:16:39 UTC (rev 3037)
@@ -90,3 +90,50 @@
}
return ret;
}
+
+PackageViewer::PackageViewer(int X, int Y, int W, int H, const char *L)
+ : Fl_Scroll(X,Y,W,H,L), nchild(0)
+{
+ for ( int t=0; t<4; t++ ) { Add(); }
+}
+
+PackageViewer::Item::Item(int X, int Y, int W, int H, int FW, int DH, const char *L)
+ : Fl_Group(X, Y, W, H, L)
+{
+ // Green fixed width box
+ FixedBox = new Fl_Box(X, Y, FW, DH, "Fixed");
+ FixedBox->box(FL_UP_BOX);
+ FixedBox->color(FL_GREEN);
+ // Red stretchy box
+ StretchBox = new Fl_Box(X+FW, Y, W-FW, DH, "Stretch");
+ StretchBox->color(FL_BLUE);
+ StretchBox->box(FL_UP_BOX);
+ resizable(StretchBox);
+ end();
+}
+
+void PackageViewer::resize(int X, int Y, int W, int H)
+{
+ // Tell children to resize to our new width
+ for ( int t=0; t<children()-2; t++ )
+ { // -2: skip scrollbars
+ Fl_Widget *w = child(t);
+ w->resize(w->x(), w->y(), W-20, w->h()); // W-20: leave room for scrollbar
+ }
+ // Tell scroll children changed in size
+ init_sizes();
+ Fl_Scroll::resize(X,Y,W,H);
+}
+
+void PackageViewer::Add()
+{
+ // Append new scrollitem to bottom
+ // Note: An Fl_Pack would be a good way to do this, too
+ int ix = x() + 1;
+ int iy = y() - yposition() + (nchild*25)+1;
+ int iw = w() - 20; // -20: compensate for vscroll bar
+ int ih = 25;
+ add(new Item(ix, iy, iw, ih, 50, 25));
+ redraw();
+ nchild++;
+}
Modified: software/ui/src/pkgbrowser.h
===================================================================
--- software/ui/src/pkgbrowser.h 2007-06-20 19:42:11 UTC (rev 3036)
+++ software/ui/src/pkgbrowser.h 2007-06-20 20:16:39 UTC (rev 3037)
@@ -34,4 +34,30 @@
virtual int handle(int e);
};
+#include <FL/Fl.H>
+#include <FL/Fl_Double_Window.H>
+#include <FL/Fl_Group.H>
+#include <FL/Fl_Scroll.H>
+#include <FL/Fl_Button.H>
+#include <FL/Fl_Box.H>
+
+class PackageViewer : public Fl_Scroll {
+public:
+ class Item : public Fl_Group
+ {
+ private:
+ Fl_Box* FixedBox;
+ Fl_Box* StretchBox;
+ public:
+ Item(int X, int Y, int W, int H, int FW, int DH, const char* L = NULL);
+ };
+
+ PackageViewer(int X, int Y, int W, int H, const char* L = NULL);
+ void resize(int X, int Y, int W, int H);
+ void Add();
+
+private:
+ int nchild;
+};
+
#endif
More information about the Pkg-games-commits
mailing list