Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #import "CocoaTabView.h"
00011
00012
00013 static GWENHYWFAR_CB
00014 int CocoaGui_WTabBook_SetIntProperty(GWEN_WIDGET *w,
00015 GWEN_DIALOG_PROPERTY prop,
00016 int index,
00017 int value,
00018 int doSignal) {
00019 CocoaTabView *tabView;
00020
00021 tabView=(CocoaTabView*)(GWEN_Widget_GetImplData(w, COCOA_DIALOG_WIDGET_REAL));
00022 assert(tabView);
00023
00024 switch(prop) {
00025 case GWEN_DialogProperty_Enabled:
00026 return 0;
00027
00028 case GWEN_DialogProperty_Focus:
00029 return 0;
00030
00031 case GWEN_DialogProperty_Value:
00032 if (value >= 0 && value < [tabView numberOfTabViewItems]) {
00033 [tabView selectTabViewItemAtIndex:value];
00034 }
00035 return 0;
00036
00037 default:
00038 break;
00039 }
00040
00041 DBG_WARN(GWEN_LOGDOMAIN,
00042 "Function is not appropriate for this type of widget (%s)",
00043 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
00044 return GWEN_ERROR_INVALID;
00045 }
00046
00047
00048
00049
00050 static GWENHYWFAR_CB
00051 int CocoaGui_WTabBook_GetIntProperty(GWEN_WIDGET *w,
00052 GWEN_DIALOG_PROPERTY prop,
00053 int index,
00054 int defaultValue) {
00055 CocoaTabView *tabView;
00056
00057 tabView=(CocoaTabView*)(GWEN_Widget_GetImplData(w, COCOA_DIALOG_WIDGET_REAL));
00058 assert(tabView);
00059
00060 switch(prop) {
00061 case GWEN_DialogProperty_Enabled:
00062 return 1;
00063
00064 case GWEN_DialogProperty_Focus:
00065 return 0;
00066
00067 case GWEN_DialogProperty_Value:
00068 return [tabView indexOfTabViewItem:[tabView selectedTabViewItem]];
00069
00070 default:
00071 break;
00072 }
00073
00074 DBG_WARN(GWEN_LOGDOMAIN,
00075 "Function is not appropriate for this type of widget (%s)",
00076 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
00077 return defaultValue;
00078 }
00079
00080
00081
00082 static GWENHYWFAR_CB
00083 int CocoaGui_WTabBook_SetCharProperty(GWEN_WIDGET *w,
00084 GWEN_DIALOG_PROPERTY prop,
00085 int index,
00086 const char *value,
00087 int doSignal) {
00088 CocoaTabView *tabView;
00089
00090 tabView=(CocoaTabView*)(GWEN_Widget_GetImplData(w, COCOA_DIALOG_WIDGET_REAL));
00091 assert(tabView);
00092
00093 DBG_WARN(GWEN_LOGDOMAIN,
00094 "Function is not appropriate for this type of widget (%s)",
00095 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
00096 return GWEN_ERROR_INVALID;
00097 }
00098
00099
00100
00101 static GWENHYWFAR_CB
00102 const char* CocoaGui_WTabBook_GetCharProperty(GWEN_WIDGET *w,
00103 GWEN_DIALOG_PROPERTY prop,
00104 int index,
00105 const char *defaultValue) {
00106 CocoaTabView *tabView;
00107
00108 tabView=(CocoaTabView*)(GWEN_Widget_GetImplData(w, COCOA_DIALOG_WIDGET_REAL));
00109 assert(tabView);
00110
00111 DBG_WARN(GWEN_LOGDOMAIN,
00112 "Function is not appropriate for this type of widget (%s)",
00113 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
00114 return defaultValue;
00115 }
00116
00117
00118
00119 static GWENHYWFAR_CB
00120 int CocoaGui_WTabBook_AddChildGuiWidget(GWEN_WIDGET *w, GWEN_WIDGET *wChild) {
00121 CocoaTabView *tabView;
00122 const char *s;
00123
00124
00125 tabView=(CocoaTabView*)(GWEN_Widget_GetImplData(w, COCOA_DIALOG_WIDGET_REAL));
00126 assert(tabView);
00127
00128 NSView *subview =(NSView*)(GWEN_Widget_GetImplData(wChild, COCOA_DIALOG_WIDGET_REAL));
00129 assert(subview);
00130
00131 s=GWEN_Widget_GetText(wChild, 0);
00132
00133
00134 NSTabViewItem *item = [[NSTabViewItem alloc] init];
00135
00136 if (s && *s) {
00137 NSString *title = [[NSString alloc] initWithCString:s encoding:NSUTF8StringEncoding];
00138 [item setLabel:title];
00139 [title release];
00140 }
00141
00142 [item setView:subview];
00143
00144 [tabView addTabViewItem:item];
00145 [item release];
00146
00147
00148 return 0;
00149 }
00150
00151
00152
00153 int CocoaGui_WTabBook_Setup(GWEN_WIDGET *w) {
00154 CocoaTabView *tabView;
00155 uint32_t flags;
00156 GWEN_WIDGET *wParent;
00157
00158 flags=GWEN_Widget_GetFlags(w);
00159 wParent=GWEN_Widget_Tree_GetParent(w);
00160
00161 tabView=[[[CocoaTabView alloc] initWithFrame:NSMakeRect(10.0, 10.0, 100.0, 22.0)] autorelease];
00162 if (flags & GWEN_WIDGET_FLAGS_FILLX) tabView.fillX = YES;
00163 if (flags & GWEN_WIDGET_FLAGS_FILLY) tabView.fillY = YES;
00164
00165 GWEN_Widget_SetImplData(w, COCOA_DIALOG_WIDGET_REAL, (void*) tabView);
00166 GWEN_Widget_SetImplData(w, COCOA_DIALOG_WIDGET_CONTENT, (void*) tabView);
00167
00168 GWEN_Widget_SetSetIntPropertyFn(w, CocoaGui_WTabBook_SetIntProperty);
00169 GWEN_Widget_SetGetIntPropertyFn(w, CocoaGui_WTabBook_GetIntProperty);
00170 GWEN_Widget_SetSetCharPropertyFn(w, CocoaGui_WTabBook_SetCharProperty);
00171 GWEN_Widget_SetGetCharPropertyFn(w, CocoaGui_WTabBook_GetCharProperty);
00172 GWEN_Widget_SetAddChildGuiWidgetFn(w, CocoaGui_WTabBook_AddChildGuiWidget);
00173
00174 if (wParent)
00175 GWEN_Widget_AddChildGuiWidget(wParent, w);
00176
00177 return 0;
00178 }
00179
00180