gwenhywfar  5.3.0
gtk3/w_image.c
Go to the documentation of this file.
1 /***************************************************************************
2  begin : Mon Jul 12 2010
3  copyright : (C) 2010 by Martin Preuss
4  email : martin@libchipcard.de
5 
6  ***************************************************************************
7  * Please see toplevel file COPYING for license details *
8  ***************************************************************************/
9 
10 
11 
12 
13 static GWENHYWFAR_CB
16  int index,
17  int value,
18  int doSignal)
19 {
20  GtkWidget *g;
21 
23  assert(g);
24 
25  switch (prop) {
27  gtk_widget_set_sensitive(GTK_WIDGET(g), (value==0)?FALSE:TRUE);
28  return 0;
29 
31  gtk_widget_grab_focus(GTK_WIDGET(g));
32  return 0;
33 
34  default:
35  break;
36  }
37 
39  "Function is not appropriate for this type of widget (%s)",
41  return GWEN_ERROR_INVALID;
42 }
43 
44 
45 
46 
47 static GWENHYWFAR_CB
50  int index,
51  int defaultValue)
52 {
53  GtkWidget *g;
54 
56  assert(g);
57 
58  switch (prop) {
60  return (gtk_widget_get_sensitive(GTK_WIDGET(g))==TRUE)?1:0;
61 
63  return (gtk_widget_has_focus(GTK_WIDGET(g))==TRUE)?1:0;
64  return 0;
65 
66  default:
67  break;
68  }
69 
71  "Function is not appropriate for this type of widget (%s)",
73  return defaultValue;
74 }
75 
76 
77 
79 {
80  GtkWidget *g;
81  uint32_t flags;
82  GWEN_WIDGET *wParent;
83  const char *s;
84  GWEN_BUFFER *tbuf;
85 
86  flags=GWEN_Widget_GetFlags(w);
87  wParent=GWEN_Widget_Tree_GetParent(w);
88 
89  tbuf=GWEN_Buffer_new(0, 256, 0, 1);
91  if (s && *s) {
92  GWEN_STRINGLIST *sl;
93 
95  if (sl) {
96  int rv;
97 
98  rv=GWEN_Directory_FindFileInPaths(sl, s, tbuf);
99  if (rv<0) {
100  DBG_ERROR(GWEN_LOGDOMAIN, "Image file [%s] not found (%d)", s, rv);
101  /* ignore result here, instead create GtkImage with "broken mage" later */
102  }
103  }
104  }
105 
106  g=gtk_image_new_from_file(GWEN_Buffer_GetStart(tbuf));
107  GWEN_Buffer_free(tbuf);
108 
111 
114 
115  if (wParent)
116  GWEN_Widget_AddChildGuiWidget(wParent, w);
117 
118  return 0;
119 }
120 
121 
GWEN_WIDGET_TYPE GWEN_Widget_GetType(const GWEN_WIDGET *w)
Definition: widget.c:185
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
Definition: buffer.c:235
int Gtk3Gui_WImage_Setup(GWEN_WIDGET *w)
Definition: gtk3/w_image.c:78
#define GWEN_ERROR_INVALID
Definition: error.h:67
#define GTK3_DIALOG_WIDGET_REAL
#define GTK3_DIALOG_WIDGET_CONTENT
GWEN_DIALOG_PROPERTY
Definition: dialog.h:232
uint32_t GWEN_Widget_GetFlags(const GWEN_WIDGET *w)
Definition: widget.c:149
#define DBG_WARN(dbg_logger, format, args...)
Definition: debug.h:124
#define GWEN_LOGDOMAIN
Definition: logger.h:35
void GWEN_Widget_SetImplData(GWEN_WIDGET *w, int index, void *ptr)
Store a pointer with the widget.
Definition: widget.c:136
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
Definition: buffer.c:42
GWEN_WIDGET_GETINTPROPERTY_FN GWEN_Widget_SetGetIntPropertyFn(GWEN_WIDGET *w, GWEN_WIDGET_GETINTPROPERTY_FN fn)
Definition: widget.c:694
static GWENHYWFAR_CB int Gtk3Gui_WImage_GetIntProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, int defaultValue)
Definition: gtk3/w_image.c:48
void * GWEN_Widget_GetImplData(const GWEN_WIDGET *w, int index)
Definition: widget.c:122
GWEN_DIALOG * GWEN_Widget_GetDialog(const GWEN_WIDGET *w)
Definition: widget.c:92
static GWENHYWFAR_CB int Gtk3Gui_WImage_SetIntProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, int index, int value, int doSignal)
Definition: gtk3/w_image.c:14
#define GWENHYWFAR_CB
Definition: gwenhywfarapi.h:89
GWENHYWFAR_API int GWEN_Directory_FindFileInPaths(const GWEN_STRINGLIST *paths, const char *filePath, GWEN_BUFFER *fbuf)
GWEN_WIDGET_SETINTPROPERTY_FN GWEN_Widget_SetSetIntPropertyFn(GWEN_WIDGET *w, GWEN_WIDGET_SETINTPROPERTY_FN fn)
Definition: widget.c:679
GWEN_STRINGLIST * GWEN_Dialog_GetMediaPaths(const GWEN_DIALOG *dlg)
Definition: dialog.c:294
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
Definition: stringlist.h:54
struct GWEN_WIDGET GWEN_WIDGET
Definition: widget_be.h:34
int GWEN_Widget_AddChildGuiWidget(GWEN_WIDGET *w, GWEN_WIDGET *wChild)
Definition: widget.c:820
void GWEN_Buffer_free(GWEN_BUFFER *bf)
Definition: buffer.c:89
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
Definition: buffer.h:38
#define DBG_ERROR(dbg_logger, format, args...)
Definition: debug.h:97
const char * GWEN_Widget_GetImageFileName(const GWEN_WIDGET *w)
Definition: widget.c:364
const char * GWEN_Widget_Type_toString(GWEN_WIDGET_TYPE t)
Definition: widget.c:452