00001
00002
00003 #ifndef VCELL_H
00004 #define VCELL_H
00005
00006 #include "liqbase.h"
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 typedef
00019 struct vcell
00020 {
00021 unsigned int usagecount;
00022
00023 struct vcell *linkparent;
00024 struct vcell *linkprev;
00025 struct vcell *linknext;
00026 struct vcell *linkchild;
00027
00028
00029 int kind;
00030
00031
00032
00033
00034
00035
00036 char * name;
00037 char * classname;
00038 char * context;
00039 void * data;
00040
00041
00042
00043 int deleted;
00044 int visible;
00045 int enabled;
00046 int selected;
00047
00048
00049 int x;
00050 int y;
00051 int w;
00052 int h;
00053
00054 int kineticx;
00055 int kineticy;
00056
00057 int overlapx;
00058 int overlapy;
00059
00060
00061 int innerw;
00062 int innerh;
00063
00064
00065 struct vcell *content;
00066
00067 liqsketch *sketch;
00068 liqimage *image;
00069 liqfont *font;
00070 int dirty;
00071 int tag;
00072 int dirtyhold;
00073 char *caption;
00074
00075 unsigned int unused[8];
00076
00077 } vcell;
00078
00079 #define cellkind_prop 1
00080 #define cellkind_visual 2
00081 #define cellkind_widget 4
00082 #define cellkind_shown 8
00083
00084
00085 int vcell_iskind(vcell *self,int cellkind);
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109 vcell * vcell_new();
00110 vcell * vcell_hold(vcell *self);
00111 void vcell_release(vcell *self);
00112 void vcell_free(vcell *self);
00113
00114
00115
00116 vcell* vcell_quickcreatewidget(char *name,char *classname,int innerw,int innerh);
00117 vcell* vcell_quickcreatevis(char *name,char *classname,int x,int y,int w,int h);
00118 vcell* vcell_quickcreatedata(char *name,char *classname,void *data);
00119 vcell* vcell_quickcreatenameclass(char *name,char *classname);
00120
00121
00122
00123
00124 vcell* vcell_child_append(vcell *self,vcell *child);
00125 vcell* vcell_child_insert(vcell *self,vcell *child);
00126 vcell* vcell_child_insertsorted(vcell *self, vcell * ch);
00127 void vcell_child_remove(vcell *self,vcell *child);
00128
00129 vcell* vcell_child_lookup(vcell *self,char *name);
00130 vcell* vcell_child_lookup_nameclass(vcell *self,char *name,char *classname);
00131
00132
00133
00134 vcell * vcell_getlinkparent(vcell *self);
00135 vcell * vcell_getlinkprev(vcell *self);
00136 vcell * vcell_getlinknext(vcell *self);
00137 vcell * vcell_getlinkchild(vcell *self);
00138
00139
00140
00141
00142
00143 vcell* vcell_findnext(vcell *self,char *query);
00144
00145
00146
00147 vcell* vcell_local_lookup(vcell *self,char *name);
00148 vcell* vcell_local_lookup_nameclass(vcell *self,char *name,char *classname);
00149 vcell* vcell_global_lookup(vcell *self,char *name);
00150 vcell* vcell_global_lookup_nameclass(vcell *self,char *name,char *classname);
00151
00152 void * vcell_handlerfind(vcell *self,char *handlername);
00153 vcell* vcell_handleradd( vcell *self,char *handlername, void *handler);
00154 int vcell_handlerrun( vcell *self,char *handlername,void *args);
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164 void vcell_setname(vcell *self,char *name);
00165 char * vcell_getname(vcell *self);
00166
00167
00168
00169 void vcell_setcaption(vcell *self,char *caption);
00170 char * vcell_getcaption(vcell *self);
00171
00172
00173
00174 void vcell_setclassname(vcell *self,char *classname);
00175 char * vcell_getclassname(vcell *self);
00176
00177
00178
00179 void vcell_setcontext(vcell *self,char *context);
00180 char * vcell_getcontext(vcell *self);
00181
00182
00183
00184
00185
00186 void vcell_setcontent(vcell *self,vcell *content);
00187 vcell * vcell_getcontent(vcell *content);
00188
00189 int vcell_getqualifiedname(vcell *self, char *buff, int buffmax);
00190
00191 void vcell_setdata(vcell *self,void *data);
00192 void * vcell_getdata(vcell *self);
00193
00194
00195
00196
00197
00198 void vcell_setvisible(vcell *self,int arg);
00199 int vcell_getvisible(vcell *self);
00200
00201 void vcell_setselected(vcell *self,int arg);
00202 int vcell_getselected(vcell *self);
00203
00204 void vcell_setdirty(vcell *self,int dirty);
00205 int vcell_getdirty(vcell *self);
00206
00207 void vcell_setdirtyhold(vcell *self,int dirtyhold);
00208 int vcell_getdirtyhold(vcell *self);
00209
00210
00211 void vcell_setshown(vcell *self,int arg);
00212 int vcell_getshown(vcell *self);
00213
00214
00215
00216 void vcell_setsketch(vcell *self,liqsketch *sketch);
00217 liqsketch*vcell_getsketch(vcell *self);
00218
00219
00220 void vcell_setimage(vcell *self,liqimage *image);
00221 liqimage *vcell_getimage(vcell *self);
00222
00223 void vcell_setfont(vcell *self,liqfont *font);
00224 liqfont *vcell_getfont(vcell *self);
00225
00226
00227
00228 void vcell_setpos(vcell *self,int x,int y);
00229 void vcell_setsize(vcell *self,int w,int h);
00230 void vcell_adjustpos(vcell *self,int dx,int dy);
00231 void vcell_adjustsize(vcell *self,int dw,int dh);
00232 void vcell_setkinetic(vcell *self,int kx,int ky);
00233 void vcell_setrect(vcell *self,int x,int y,int w,int h);
00234
00235 int vcell_getx(vcell *self);
00236 int vcell_gety(vcell *self);
00237 int vcell_getw(vcell *self);
00238 int vcell_geth(vcell *self);
00239 int vcell_getinnerw(vcell *self);
00240 int vcell_getinnerh(vcell *self);
00241 int vcell_getkineticx(vcell *self);
00242 int vcell_getkineticy(vcell *self);
00243
00244 void vcell_forceinboundparent(vcell *self);
00245
00246
00247
00248 void vcell_zorder_totop(vcell *self);
00249 vcell * vcell_getbasewidget(vcell *self);
00250
00251
00252
00253
00254 int vcell_child_arrange_easytile(vcell *self);
00255 int vcell_child_arrange_easyrow(vcell *self);
00256 int vcell_child_arrange_easycol(vcell *self);
00257
00258
00259 int vcell_child_arrange_autoflow(vcell *self);
00260 int vcell_child_arrange_nooverlap(vcell *self,vcell *currentselection);
00261 int vcell_child_arrange_makegrid(vcell *self,int viscolcount,int visrowcount);
00262
00263
00264
00265
00266
00267
00268
00269
00270 #endif