// **NOTE** MUST KEEP IN SYNC WITH getRadius/RADIUS_ETCH !!! ERound qtcGetWidgetRound(const Options *opts, int w, int h, EWidget widget) { ERound r=opts->round; if( ((WIDGET_PBAR_TROUGH==widget || WIDGET_PROGRESSBAR==widget) && (opts->square&SQUARE_PROGRESS)) || (WIDGET_ENTRY==widget && (opts->square&SQUARE_ENTRY)) || (WIDGET_SCROLLVIEW==widget && (opts->square&SQUARE_SCROLLVIEW)) ) return ROUND_NONE; if((WIDGET_CHECKBOX==widget || WIDGET_FOCUS==widget) && ROUND_NONE!=r) r=ROUND_SLIGHT; #if defined __cplusplus && (defined QT_VERSION && (QT_VERSION >= 0x040000)) if((WIDGET_MDI_WINDOW_BUTTON==widget && (opts->titlebarButtons&TITLEBAR_BUTTON_ROUND)) || WIDGET_RADIO_BUTTON==widget || WIDGET_DIAL==widget) return ROUND_MAX; #endif #ifndef __cplusplus if(WIDGET_RADIO_BUTTON==widget) return ROUND_MAX; #endif #if !defined __cplusplus || (defined QT_VERSION && (QT_VERSION >= 0x040000)) if(WIDGET_SLIDER==widget && (SLIDER_ROUND==opts->sliderStyle || SLIDER_ROUND_ROTATED==opts->sliderStyle || SLIDER_CIRCULAR==opts->sliderStyle)) return ROUND_MAX; #endif switch(r) { case ROUND_MAX: if(IS_SLIDER(widget) || WIDGET_TROUGH==widget || (w>(MIN_ROUND_MAX_WIDTH+2) && h>(MIN_ROUND_MAX_HEIGHT+2) && IS_MAX_ROUND_WIDGET(widget))) return ROUND_MAX; case ROUND_EXTRA: if(CAN_EXTRA_ROUND(2)) return ROUND_EXTRA; case ROUND_FULL: if(CAN_FULL_ROUND(2)) return ROUND_FULL; case ROUND_SLIGHT: return ROUND_SLIGHT; case ROUND_NONE: return ROUND_NONE; } return ROUND_NONE; }
double qtcGetRadius(const Options *opts, int w, int h, EWidget widget, ERadius rad) { ERound r=opts->round; if((WIDGET_CHECKBOX==widget || WIDGET_FOCUS==widget) && ROUND_NONE!=r) r=ROUND_SLIGHT; if( ((WIDGET_PBAR_TROUGH==widget || WIDGET_PROGRESSBAR==widget) && (opts->square&SQUARE_PROGRESS)) || (WIDGET_ENTRY==widget && (opts->square&SQUARE_ENTRY)) || (WIDGET_SCROLLVIEW==widget && (opts->square&SQUARE_SCROLLVIEW)) ) return 0.0; #if defined __cplusplus && (defined QT_VERSION && (QT_VERSION >= 0x040000)) if((WIDGET_MDI_WINDOW_BUTTON==widget && (opts->titlebarButtons&TITLEBAR_BUTTON_ROUND)) || WIDGET_RADIO_BUTTON==widget || WIDGET_DIAL==widget) return (w>h ? h : w)/2.0; #endif #ifndef __cplusplus if(WIDGET_RADIO_BUTTON==widget) return (w>h ? h : w)/2.0; #endif #if !defined __cplusplus || (defined QT_VERSION && (QT_VERSION >= 0x040000)) if(WIDGET_SLIDER==widget && (SLIDER_ROUND==opts->sliderStyle || SLIDER_ROUND_ROTATED==opts->sliderStyle || SLIDER_CIRCULAR==opts->sliderStyle)) return (w>h ? h : w)/2.0; #endif if(RADIUS_EXTERNAL==rad && !opts->fillProgress && (WIDGET_PROGRESSBAR==widget #ifndef __cplusplus || WIDGET_ENTRY_PROGRESSBAR==widget #endif )) rad=RADIUS_INTERNAL; switch(rad) { case RADIUS_SELECTION: switch(r) { case ROUND_MAX: case ROUND_EXTRA: if(/* (WIDGET_RUBBER_BAND==widget && w>14 && h>14) || */(w>48 && h>48)) return 6.0; case ROUND_FULL: // if( /*(WIDGET_RUBBER_BAND==widget && w>11 && h>11) || */(w>48 && h>48)) // return 3.0; if(w>MIN_ROUND_FULL_SIZE && h>MIN_ROUND_FULL_SIZE) return 3.0; case ROUND_SLIGHT: return 2.0; case ROUND_NONE: return 0; } case RADIUS_INTERNAL: switch(r) { case ROUND_MAX: if(IS_SLIDER(widget) || WIDGET_TROUGH==widget) { double r=((w>h ? h : w)-(WIDGET_SLIDER==widget ? 1 : 0))/2.0; return r>MAX_RADIUS_INTERNAL ? MAX_RADIUS_INTERNAL : r; } if(w>(MIN_ROUND_MAX_WIDTH-2) && h>(MIN_ROUND_MAX_HEIGHT-2) && IS_MAX_ROUND_WIDGET(widget)) { double r=((w>h ? h : w)-2.0)/2.0; return r>9.5 ? 9.5 : r; } case ROUND_EXTRA: if(CAN_EXTRA_ROUND(-2)) return EXTRA_INNER_RADIUS; case ROUND_FULL: if(CAN_FULL_ROUND(-2)) return FULL_INNER_RADIUS; case ROUND_SLIGHT: return SLIGHT_INNER_RADIUS; case ROUND_NONE: return 0; } case RADIUS_EXTERNAL: switch(r) { case ROUND_MAX: if(IS_SLIDER(widget) || WIDGET_TROUGH==widget) { double r=((w>h ? h : w)-(WIDGET_SLIDER==widget ? 1 : 0))/2.0; return r>MAX_RADIUS_EXTERNAL ? MAX_RADIUS_EXTERNAL : r; } if(w>MIN_ROUND_MAX_WIDTH && h>MIN_ROUND_MAX_HEIGHT && IS_MAX_ROUND_WIDGET(widget)) { double r=((w>h ? h : w)-2.0)/2.0; return r>10.5 ? 10.5 : r; } case ROUND_EXTRA: if(CAN_EXTRA_ROUND(0)) return EXTRA_OUTER_RADIUS; case ROUND_FULL: if(CAN_FULL_ROUND(0)) return FULL_OUTER_RADIUS; case ROUND_SLIGHT: return SLIGHT_OUTER_RADIUS; case ROUND_NONE: return 0; } case RADIUS_ETCH: // **NOTE** MUST KEEP IN SYNC WITH getWidgetRound !!! switch(r) { case ROUND_MAX: if(IS_SLIDER(widget) || WIDGET_TROUGH==widget) { double r=((w>h ? h : w)-(WIDGET_SLIDER==widget ? 1 : 0))/2.0; return r>MAX_RADIUS_EXTERNAL ? MAX_RADIUS_EXTERNAL : r; } if(w>(MIN_ROUND_MAX_WIDTH+2) && h>(MIN_ROUND_MAX_HEIGHT+2) && IS_MAX_ROUND_WIDGET(widget)) { double r=((w>h ? h : w)-2.0)/2.0; return r>11.5 ? 11.5 : r; } case ROUND_EXTRA: if(CAN_FULL_ROUND(2)) return EXTRA_ETCH_RADIUS; case ROUND_FULL: if(w>(MIN_ROUND_FULL_SIZE+2) && h>(MIN_ROUND_FULL_SIZE+2)) return FULL_ETCH_RADIUS; case ROUND_SLIGHT: return SLIGHT_ETCH_RADIUS; case ROUND_NONE: return 0; } } return 0; }
gfloat slider_get_pos(Slider const * const self) { g_return_if_fail(IS_SLIDER(self)); return self->priv->pos; }
void slider_set_pos(Slider *self, gfloat const pos) { g_return_if_fail(IS_SLIDER(self)); self->priv->pos = (pos > 1) ? 1 : (pos < 0) ? 0 : pos; g_signal_emit(self, slider_signals[SLID], 0, self->priv->pos); clutter_actor_queue_relayout(CLUTTER_ACTOR(self)); }