Ejemplo n.º 1
0
//__________________________________________________________________
void        _HYPlatformPullDown::_MarkItem      (long index, char mark)
{
    if (theMenu && index*2 < widgetList.lLength) {
        GtkWidget * theImage = nil;
        switch (mark) {
        case HY_PULLDOWN_CHECK_MARK:
            theImage = gtk_image_new_from_stock (GTK_STOCK_APPLY,GTK_ICON_SIZE_MENU);
            break;

        case HY_PULLDOWN_BULLET_MARK:
            theImage = gtk_image_new_from_stock (GTK_STOCK_YES,GTK_ICON_SIZE_MENU);
            break;

        case HY_PULLDOWN_DIAMOND_MARK:
            theImage = gtk_image_new_from_stock (GTK_STOCK_ADD,GTK_ICON_SIZE_MENU);
            break;
        }

        GtkWidget * menuLabel = gtk_bin_get_child (GTK_BIN(widgetList(2*index+1)));
        if (theImage) {
            gtk_widget_show (theImage);
        }

        if (GTK_IS_LABEL(menuLabel)) {
            if (theImage) {
                GtkContainer * cW = GTK_CONTAINER (widgetList(2*index+1));
                GtkWidget * hBox = gtk_hbox_new (FALSE,5);
                gtk_widget_show (hBox);
                g_object_ref(menuLabel);
                gtk_container_remove (cW, menuLabel);
                gtk_box_pack_start(GTK_BOX(hBox), theImage, FALSE, FALSE, 0);
                gtk_box_pack_start(GTK_BOX(hBox), menuLabel, FALSE, FALSE, 0);
                g_object_unref(menuLabel);
                gtk_container_add (cW, hBox);
            }
        } else {
            GList     * children      = gtk_container_get_children (GTK_CONTAINER(menuLabel));
            GtkWidget * restoreWidget = GTK_WIDGET(children->next->data);
            g_object_ref (restoreWidget);
            if (theImage) {
                GtkWidget * replaceWidget = GTK_WIDGET(children->data);
                gtk_container_remove(GTK_CONTAINER(menuLabel),replaceWidget);
                gtk_container_remove(GTK_CONTAINER(menuLabel),restoreWidget);
                gtk_box_pack_start(GTK_BOX(menuLabel), theImage, FALSE, FALSE, 0);
                gtk_box_pack_start(GTK_BOX(menuLabel), restoreWidget, FALSE, FALSE, 0);
            } else {
                GtkWidget * parentWidget =  menuLabel->parent;
                gtk_container_remove(GTK_CONTAINER(parentWidget),menuLabel);
                gtk_container_add (GTK_CONTAINER(parentWidget), restoreWidget);
            }
            gtk_widget_show (restoreWidget);
            g_object_unref (restoreWidget);
            g_list_free (children);
        }
    }
}
Ejemplo n.º 2
0
//__________________________________________________________________
_HYRect _HYPullDown::_SuggestDimensions (void)
{
    _HYRect res = {25,100,25,100,HY_COMPONENT_NO_SCROLL};

    if (theMenu) {
        long            naturalWidth = 0;
        PangoLayout *   fontMeasurer = nil;
        for (long k=0; k<widgetList.lLength; k+=2) {
            GtkWidget * dropWidget = GTK_WIDGET (widgetList(k));
            if (!fontMeasurer) {
                fontMeasurer = pango_layout_new (gtk_widget_get_pango_context (dropWidget));
            }

            pango_layout_set_text(fontMeasurer,GetMenuItem(k/2)->sData ,GetMenuItem(k/2)->sLength);
            PangoRectangle extents,
                           log_ext;
            pango_layout_get_pixel_extents (fontMeasurer,&extents,nil);
            if (extents.width > naturalWidth) {
                naturalWidth = extents.width;
            }
        }
        if (fontMeasurer) {
            g_object_unref (fontMeasurer);
        }

        res.right = res.left = naturalWidth+25;
    }

    return res;
}
Ejemplo n.º 3
0
int main(int argc, char *argv[]) {
	int ret = -1;
	QApplication application(argc, argv);


    ListWidget* list = new ListWidget;

    for(int i=0;i<10;++i)
    {
        list->addWidget(new QPushButton(QString::number(i)));
    }

    WidgetList widgetList(list);
    widgetList.show();


    ret = application.exec();

    delete list;
    return ret;
}
Ejemplo n.º 4
0
//__________________________________________________________________
void        _HYPlatformPullDown::_EnableItem (long theItem, bool toggle)
{
    gtk_widget_set_sensitive(GTK_WIDGET(widgetList(2*theItem)), toggle);
}