00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #include <stdio.h>
00033 #include <stdlib.h>
00034
00035 #include "gadgets/gadget_SysBorder.h"
00036
00037 #include "debug.h"
00038 #include "classes.h"
00039 #include "Bases.h"
00040 #include "Module.h"
00041 #include "Common.h"
00042 #include "Window.h"
00043
00044
00045
00046 struct _sys_border
00047 {
00048 Gadget_t gadget;
00049 };
00050
00051
00052 static bases_Modules_t *api;
00053 VERSION("SysBorder.gadget",1,0,"Gergely Gati","g.gati@freemail.hu");
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063 static void sys_border_get_extent(Gadget_t *this, Extent_t *min, Extent_t *max)
00064 {
00065 debug_Begin();
00066
00067 min->width=4;
00068 min->height=2;
00069 max->width=4;
00070 max->height=GADGET_MAXIMUM_SIZE;
00071
00072 debug_End();
00073 }
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084 static void sys_border_layout(Gadget_t *this, Rect_t *rect)
00085 {
00086
00087
00088
00089
00090
00091
00092
00093 debug_Begin();
00094
00095 api->glw_Call(GLW_SETCOLOR,TAG_GLW_WINDOW,this->window->handle, TAG_GLW_RGB,0x6182ae,TAG_DONE);
00096 api->glw_Call(GLW_DRAWFILLEDRECT,TAG_GLW_WINDOW,this->window->handle,TAG_GLW_LEFT,rect->left,TAG_GLW_TOP,rect->top,TAG_GLW_WIDTH,rect->width,TAG_GLW_HEIGHT,rect->height,TAG_DONE);
00097 api->glw_Call(GLW_SETCOLOR,TAG_GLW_WINDOW,this->window->handle, TAG_GLW_RGB,0xefefef,TAG_DONE);
00098 api->glw_Call(GLW_DRAWLINE,TAG_GLW_WINDOW,this->window->handle,TAG_GLW_X1,rect->left,TAG_GLW_Y1,rect->top,TAG_GLW_X2,rect->left,TAG_GLW_Y2,rect->top+rect->height-1,TAG_DONE);
00099 api->glw_Call(GLW_SETCOLOR,TAG_GLW_WINDOW,this->window->handle, TAG_GLW_RGB,0x000000,TAG_DONE);
00100 api->glw_Call(GLW_DRAWLINE,TAG_GLW_WINDOW,this->window->handle,TAG_GLW_X1,rect->left+rect->width-1,TAG_GLW_Y1,rect->top,TAG_GLW_X2,rect->left+rect->width-1,TAG_GLW_Y2,rect->top+rect->height-1,TAG_DONE);
00101
00102 debug_End();
00103 }
00104
00105
00106 #if 0
00107 static int sys_border_input_event_handler(Gadget_t *gad, struct glw_Event *event)
00108 {
00109 return(0);
00110 }
00111 #endif
00112
00113
00114 int sys_border_init_gadget(Gadget_t *this, tag *taglist)
00115 {
00116 debug_Begin();
00117
00118 debug_End();
00119 return(0);
00120 }
00121
00122
00123 static int sys_border_gadget_event_handler(Gadget_t *this, int event, tag *taglist)
00124 {
00125 int ret=-1;
00126
00127 debug_Begin();
00128
00129 if(this!=NULL&&event>=0)
00130 {
00131 switch(event)
00132 {
00133 case GADEV_INIT_GADGET:
00134 {
00135 ret=sys_border_init_gadget(this,taglist);
00136 break;
00137 }
00138 case GADEV_DELETE_GADGET:
00139 {
00140 ret=0;
00141 break;
00142 }
00143 case GADEV_GET_EXTENT:
00144 {
00145 Extent_t *min,*max,n,x;
00146 min=(Extent_t *)tag_GetTagData(taglist,TAG_GAD_EXTMIN,(u32)&n);
00147 max=(Extent_t *)tag_GetTagData(taglist,TAG_GAD_EXTMAX,(u32)&x);
00148 sys_border_get_extent(this,min,max);
00149 ret=0;
00150 break;
00151 }
00152 case GADEV_LAYOUT:
00153 case GADEV_DAMAGE:
00154 {
00155 Rect_t *rect,r;
00156 rect=(Rect_t *)tag_GetTagData(taglist,TAG_GAD_RECT,(u32)&r);
00157 sys_border_layout(this,rect);
00158 ret=0;
00159 break;
00160 }
00161 }
00162 }
00163
00164 debug_End();
00165
00166 return(ret);
00167 }
00168
00169
00170
00171
00172
00173
00174 static void init_sys_border_class(u32 module)
00175 {
00176 api->gadget_Call(GADGET_REGISTER_CLASS,
00177 TAG_GADGET_CLASS_ID,CLASS_SYS_BORDER_ID,
00178 TAG_GADGET_NAME,CLASS_SYS_BORDER_NAME,
00179 TAG_GADGET_BINDING,NULL,
00180 TAG_GADGET_COLOR_NAMES,NULL,
00181 TAG_GADGET_CUSTOM_NAMES,NULL,
00182 TAG_GADGET_STATE_MASK,GADSTF_NORMAL,
00183 TAG_GADGET_MODULE,module,
00184 TAG_GADGET_GADGET_SIZE,sizeof(sys_border),
00185 TAG_GADGET_METHODS,NULL,
00186 TAG_GADGET_INPUT_EVENT_HANDLER,NULL,
00187 TAG_GADGET_EVENT_HANDLER,NULL,
00188 TAG_GADGET_GADGET_EVENT_HANDLER,sys_border_gadget_event_handler,
00189 TAG_DONE);
00190 }
00191
00192
00193 EXPORT int module_Init(u32 module, bases_Modules_t *bases)
00194 {
00195 api=bases;
00196 init_sys_border_class(module); return(0);
00197 }