Esempio n. 1
0
static void tabpage_show_hide(struct widget *self, int visible) {
  if (visible) {
    widget_base_set(self, PG_WP_SIDE, PG_S_ALL);
  }
  else {
    widget_base_set(self, PG_WP_SIDE, PG_S_TOP);
    widget_base_set(self, PG_WP_SIZE, 0);
  }
}
Esempio n. 2
0
g_error panel_set(struct widget *self,int property, glob data) {
  struct widget *w;
  g_error e;
  struct app_info **app;

  switch (property) {

  case PG_WP_SIZE:
    /* Alias 0 to our minimum rolled-up size */
    e = rdhandle((void **) &w, PG_TYPE_WIDGET, self->owner, DATA->hbar);
    errorcheck;
    if (data==0)
      data = w->in->split;
    widget_base_set(self,property,data);
    break;

  case PG_WP_SIDE:
    e = rdhandle((void **) &w, PG_TYPE_WIDGET, self->owner, DATA->hbar);
    errorcheck;
    switch (data) {    /* Invert the side for the panelbar */
    case PG_S_TOP:    widget_set(w,PG_WP_SIDE,PG_S_BOTTOM); break;
    case PG_S_BOTTOM: widget_set(w,PG_WP_SIDE,PG_S_TOP);    break;
    case PG_S_LEFT:   widget_set(w,PG_WP_SIDE,PG_S_RIGHT);  break;
    case PG_S_RIGHT:  widget_set(w,PG_WP_SIDE,PG_S_LEFT);   break;
    }
    return mkerror(ERRT_PASS,0);

  case PG_WP_THOBJ:
    DATA->bg->state = data;
    resizewidget(self);
    self->in->flags |= DIVNODE_NEED_RECALC;
    self->dt->flags |= DIVTREE_NEED_RECALC;
    break;
    
  case PG_WP_TEXT:
    e = rdhandle((void **) &w, PG_TYPE_WIDGET, self->owner, DATA->hlabel);
    errorcheck;
    app = appmgr_findapp(self);
    if (app && *app)
      (*app)->name = data;
    return widget_set(w,property,data);

  case PG_WP_IMAGE:
    e = rdhandle((void **) &w, PG_TYPE_WIDGET, self->owner, DATA->hlabel);
    errorcheck;
    return widget_set(w,property,data);

  case PG_WP_MARGIN:
    DATA->margin = data;
    DATA->margin_override = data >= 0;
    resizewidget(self);
    break;

  default:
    return mkerror(ERRT_PASS,0);

  }
  return success;
}
Esempio n. 3
0
g_error widget_set(struct widget *w, int property, glob data) {
   g_error e;
   
   if (!(w && w->def->set))
     return mkerror(PG_ERRT_BADPARAM,23);   /* Bad widget in widget_set */
   
   /* If the widget has a handler, go with that */
   e = (*w->def->set)(w,property,data);
   if (errtype(e)!=ERRT_PASS)
     return e;
   
   return widget_base_set(w,property,data);
}
Esempio n. 4
0
g_error tabpage_install(struct widget *self) {
  g_error e;
  struct widget *tab;

  WIDGET_INSTALL_PARENT(PG_WIDGET_BOX);
  WIDGET_ALLOC_DATA(tabpagedata);

  /* Set custom defaults */
  e = widget_base_set(self, PG_WP_THOBJ, PGTH_O_TAB_PAGE);
  errorcheck;
  e = widget_base_set(self, PG_WP_SIZE, 0);
  errorcheck;

  /* Go ahead and create the tab. We will attach the tab
   * later when we're attached ourselves, but create it early so the
   * properties can be set.
   */
  e = widget_create(&tab, &DATA->htab, PG_WIDGET_BUTTON,
		    self->dt, self->container, self->owner);
  errorcheck;
  e = widget_set(tab, PG_WP_EXTDEVENTS, PG_EXEV_TOGGLE | PG_EXEV_EXCLUSIVE);
  errorcheck;
  e = widget_set(tab, PG_WP_THOBJ_BUTTON, PGTH_O_TAB);
  errorcheck;
  e = widget_set(tab, PG_WP_THOBJ_BUTTON_HILIGHT, PGTH_O_TAB_HILIGHT);
  errorcheck;
  e = widget_set(tab, PG_WP_THOBJ_BUTTON_ON, PGTH_O_TAB_ON);
  errorcheck;
  e = widget_set(tab, PG_WP_THOBJ_BUTTON_ON_NOHILIGHT, PGTH_O_TAB_ON_NOHILIGHT);
  errorcheck;

  tab->callback = &tabpage_tab_callback;
  tab->callback_owner = self;

  return success;
}