enum MnState
{
  MN_STATE_NORMAL,
  MN_STATE_DISABLED,
  MN_STATE_ACTIVE,
  MN_STATE_HOVER
};

enum MnFlags
{
  MN_STATE_FOCUS   = 1 << 0,
  MN_STATE_CHECKED = 1 << 1
};

MnWidget
{
  MnContext *parent;
  gchar     *id;
  gchar     *class;
  gchar     *type;
  MnState    state;
  MnFlags    flags;
};

void mn_widget_paint_button (MnWidget *context, 
                             cairo_t *cr,
                             double y,
                             double x,
                             double width,
                             double height);

enum MnScrollbarPart
{
  MN_SCROLLBAR_STEPPER_UP,
  MN_SCROLLBAR_STEPPER_DOWN,
  MN_SCROLLBAR_STEPPER_LEFT,
  MN_SCROLLBAR_STEPPER_RIGHT,
  MN_SCROLLBAR_TROUGH,
  MN_SCROLLBAR_SLIDER
}

void mn_widget_paint_scrollbar (MnWidget        *widget,
                                MnScrollbarPart  part,
                                cairo_t         *cr,
                                double           x,
                                double           y,
                                double           width,
                                double           height);

void mn_widget_paint_check_box (MnWidget *widget,
                                cairo_t  *cr,
                                double    x,
                                double    y,
                                double    width,
                                double    height);

void mn_widget_paint_radio_button (MnWidget *widget,
                                   cairo_t  *cr,
                                   double    x,
                                   double    y,
                                   double    width,
                                   double    height);

Attic/GnomeArt/Monet/Api/PseudoCode (last edited 2013-11-27 14:33:56 by WilliamJonMcCann)