00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00023 #ifndef __PAGEBAR_H__
00024 #define __PAGEBAR_H__
00025
00026 #include <gtk/gtk.h>
00027 #include <gdk/gdk.h>
00028
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032
00033 #define GTK_PAGEBAR_TYPE (gtk_pagebar_get_type ())
00034 #define GTK_PAGEBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_PAGEBAR_TYPE, GtkPagebar))
00035 #define GTK_PAGEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_PAGEBAR_TYPE, GtkPagebarClass))
00036 #define IS_GTK_PAGEBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_PAGEBAR_TYPE))
00037 #define IS_GTK_PAGEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_PAGEBAR_TYPE))
00038
00039 #define USE_BITMAPS
00040
00041
00042 #define PAGEBAR_DEFAULT_PAGECOUNT 1
00043 #define PAGEBAR_DEFAULT_CURRENTPAGE 1
00044 #define PAGEBAR_DEFAULT_CURRENTPAGEOFFSET 100
00045 #define PAGEBAR_DEFAULT_ZOOMMODE 0
00046 #define PAGEBAR_DEFAULT_ORIENTATION 0
00047 #define PAGEBAR_DEFAULT_DRAWAREAHEIGHT 50
00048 #define PAGEBAR_DEFAULT_DRAWAREAXPOS 0
00049 #define PAGEBAR_DEFAULT_DRAWAREAYPOS SCREEN_HEIGHT-PAGEBAR_DEFAULT_DRAWAREAHEIGHT
00050 #define PAGEBAR_DEFAULT_DRAWAREAWIDTH SCREEN_WIDTH
00051 #define PAGEBAR_DEFAULT_BARXPOS 9
00052 #define PAGEBAR_DEFAULT_BARYPOS 0
00053 #define PAGEBAR_DEFAULT_BARWIDTH SCREEN_WIDTH-18
00054 #define PAGEBAR_DEFAULT_BARHEIGHT 42
00055 #define PAGEBAR_DEFAULT_CPIHEIGHT 42
00056 #define PAGEBAR_DEFAULT_CPIWIDTH 59
00057 #define PAGEBAR_DEFAULT_BARFONTTYPE 0
00058 #define PAGEBAR_DEFAULT_BARFONTHEIGHT 8
00059 #define PAGEBAR_DEFAULT_CPIFONTTYPE 0
00060 #define PAGEBAR_DEFAULT_CPIFONTHEIGHT 8
00061 #define PAGEBAR_DEFAULT_PAGEOFFSETXOFFSET 6
00062 #define PAGEBAR_DEFAULT_PAGEOFFSETYOFFSET 34
00063 #define PAGEBAR_DEFAULT_PAGEOFFSETWIDTH 47
00064 #define PAGEBAR_DEFAULT_PAGEOFFSETHEIGHT 3
00065 #define PAGEBAR_DEFAULT_BOOKMARKCOUNT 0
00066 #define PAGEBAR_DEFAULT_BOOKMARKMAXVALUE PAGEBAR_DEFAULT_PAGECOUNT
00067 #define PAGEBAR_DEFAULT_NOTECOUNT 0
00068 #define PAGEBAR_DEFAULT_NOTESMAXVALUE PAGEBAR_DEFAULT_PAGECOUNT
00069 #define PAGEBAR_DEFAULT_PAGEFIELDWIDTH 36
00070 #define PAGEBAR_DEFAULT_PAGEFIELDHEIGHT 19
00071 #define PAGEBAR_DEFAULT_SCROLLBUTTONWIDTH 18
00072 #define PAGEBAR_DEFAULT_SCROLLBUTTONHEIGHT 19
00073 #define PAGEBAR_DEFAULT_SHOW 1
00074
00075 #define PAGEBAR_TIMER_NONE 0
00076 #define PAGEBAR_TIMER_PROGRESS 1
00077
00078
00079
00080 #define PAGEBAR_CPI_EXTRA_WIDTH 8
00081
00082
00083 typedef struct _GtkPagebar GtkPagebar;
00084 typedef struct _GtkPagebarClass GtkPagebarClass;
00085
00086 enum _icons {
00087 bitmap_CPI=0,
00088 bitmap_CPIExpand,
00089 bitmap_CPICollapse,
00090 bitmap_PageField,
00091 bitmap_ScrollLeft,
00092 bitmap_ScrollRight,
00093 bitmap_Bookmark,
00094 bitmap_Note,
00095 bitmap_count
00096 };
00097
00098
00099 struct _GtkPagebar
00100 {
00101 GtkEventBox eventbox;
00102 GtkWidget* drawingArea;
00103 GdkPixmap* pixmap;
00104 PangoLayout* pangolayout;
00105 int pagecount;
00106 int currentPage;
00107 int currentPageOffset;
00108 int zoomMode;
00109
00110 GdkPixbuf* bitmaps[bitmap_count];
00111 int orientation;
00112 int drawAreaXPos;
00113 int drawAreaYPos;
00114 int drawAreaWidth;
00115 int drawAreaHeight;
00116 int barXPos;
00117 int barYPos;
00118 int barWidth;
00119 int barHeight;
00120 int cpiXPos;
00121 int cpiYPos;
00122 int cpiHeight;
00123 int cpiWidth;
00124 int cpiFontType;
00125 int cpiFontHeight;
00126 int barFontType;
00127 int barFontHeight;
00128 int pageFieldWidth;
00129 int pageFieldHeight;
00130 int pageOffsetXOffset;
00131 int pageOffsetYOffset;
00132 int pageOffsetWidth;
00133 int pageOffsetHeight;
00134 int scrollButtonWidth;
00135 int scrollButtonHeight;
00136 int* bookmarks;
00137 int bookmarkCount;
00138 int bookmarkMaxValue;
00139 int* notes;
00140 int noteCount;
00141 int notesMaxValue;
00142 int show;
00143
00144 int barFontWidth;
00145 int cpiFontWidth;
00146 int lastPage;
00147 int maxItems;
00148
00149 int currentApp;
00150 GtkWidget* pageEntry;
00151 int lastDrawAreaXPos;
00152 int lastDrawAreaYPos;
00153 int lastDrawAreaWidth;
00154 int lastDrawAreaHeight;
00155 int currentTimer;
00156 };
00157
00158 struct _GtkPagebarClass
00159 {
00160 GtkEventBoxClass parent_class;
00161
00162 void (*pagebar_page_selected) (GtkPagebar *pagebar, int page);
00163
00164 };
00165
00166
00167 GtkWidget* gtk_pagebar_new();
00168
00169
00170 GType gtk_pagebar_get_type (void);
00171
00172
00173 int gtk_pagebar_draw(GtkPagebar* pagebar);
00174
00175
00176 void gtk_pagebar_selectpage(GtkPagebar* pageBar, int page);
00177
00178
00179 int gtk_pagebar_get_pagecount(GtkPagebar* pageBar);
00180
00181
00182 int gtk_pagebar_get_selected_pagenumber(GtkPagebar* pageBar);
00183
00184
00185 void gtk_pagebar_startProgressTimer(GtkPagebar* pageBar);
00186 void gtk_pagebar_stopTimer(GtkPagebar* pageBar);
00187
00188 int addBookmark(GtkPagebar* pagebar, int value);
00189 int removeBookmark(GtkPagebar* pagebar, int value);
00190
00191 int addNote(GtkPagebar* pagebar, int value);
00192 int removeNote(GtkPagebar* pagebar, int value);
00193
00194 int pagebar_reset_values(GtkPagebar* pagebar);
00195
00196 void pagebar_reportSync(GtkPagebar *pagebar);
00197
00198 #ifdef __cplusplus
00199 }
00200 #endif
00201
00202 #endif //__PAGEBAR_H__
00203