`
icarusli
  • 浏览: 531067 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

dropdownview[i8320]

阅读更多

基本上是从widget_demo中搞出来的。
具体效果参见我发的那个华容道游戏GtkWidget* dropdownview = gtk_drop_down_view_new();

    GtkWidget* option;

    GtkWidget* option_item;

    GtkWidget* label;

 

option_item = gtk_drop_down_item_new();

    label = gtk_label_new("");

    gtk_drop_down_item_set_widget(GTK_DROP_DOWN_ITEM(option_item), label);//这个将一个widget加入到item,必须加。

    gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);//设置对齐方式

    gtk_drop_down_item_set_headline_with_alignment(GTK_DROP_DOWN_ITEM(option_item), "过关记录",0,0);

    gtk_drop_down_view_add_item (GTK_DROP_DOWN_VIEW(dropdownview), GTK_DROP_DOWN_ITEM(option_item), NULL, TRUE);

    g_object_set(option_item, "drop-down-item-style", HORIZONTAL_STYLE, NULL);

 

    GtkBorder border;

    border.left = 0;

    border.right = 0;

    border.top = 0;

    border.bottom = 0;//这个东西搞过CSS的应该知道,我解释不清。 通过样的设置可以将slide_button移上来。

    option_item = gtk_drop_down_item_new();

    g_object_set(option_item,"inner-border",&border,NULL);

    GtkWidget *switch_button = gtk_slide_button_new_with_label("背景音乐");

    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(switch_button), musicOn);

    gtk_drop_down_item_set_widget(GTK_DROP_DOWN_ITEM(option_item), switch_button);

    gtk_drop_down_view_add_item(GTK_DROP_DOWN_VIEW(dropdownview), GTK_DROP_DOWN_ITEM(option_item), NULL, FALSE);

    g_signal_connect(switch_button,"toggled",slide_btn_clicked_cb,NULL);

 

 

option_item = gtk_drop_down_item_new();

    label = gtk_label_new("");

    gtk_drop_down_item_set_widget(GTK_DROP_DOWN_ITEM(option_item), label);

    gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);

    gtk_drop_down_item_set_headline_with_alignment(GTK_DROP_DOWN_ITEM(option_item), "退出游戏",0,0);

    gtk_drop_down_view_add_item (GTK_DROP_DOWN_VIEW(dropdownview), GTK_DROP_DOWN_ITEM(option_item), NULL, TRUE);

 

g_signal_connect(GTK_OBJECT(dropdownview), "clicked-item", G_CALLBACK(drop_down_item_pressed_cb), form);

//添加点击回调。这些不是展开的事件。

 

g_signal_connect (dropdownview, "item-collapsed", G_CALLBACK(drop_down_item_collapsed),NULL);//这个是收缩的事件。

g_signal_connect (dropdownview, "item-expanded", G_CALLBACK(drop_down_item_expanded),NULL);//这个展开的。

 

 

gtk_container_add(GTK_CONTAINER(form), dropdownview);//将他加到form里。 当然如果内容多的话就要加一下可以滚动的scrolled window.
下面是回调函数的实现。得到点击选项事件。void drop_down_item_pressed_cb(GtkDropDownView *view, GtkWidget* item,gpointer data)

//我是直接通过比较headline来确定的。哪位若有更好的方法可以告诉我下。

gchar *headline = gtk_drop_down_item_get_headline(GTK_DROP_DOWN_ITEM(item));

if(strcmp(headline, "退出游戏") == 0)

    {

        exit_app(item,data);

    }

分享到:
评论

相关推荐

    Android DropDownView动态添加列表框值.rar

    本例子主要是自定义一个下拉列表框,演示Spinner的用法,在Android中创建一个DropDownView,动态添加列表框的值,示例运行后,用户即进入添加模式,添加后列表框中会一项内容,依次类推,单击下拉框会看到所添加的值...

    ios-DropDownView.zip

    在iOS开发中,"ios-DropDownView.zip" 提供了一个实现下拉菜单的示例。下拉菜单通常用于在有限的空间内展示多个选项,让用户能够快速选择。在这个项目中,下拉菜单以一个UITableView的形式呈现,这允许用户滚动浏览...

    DropDownView.zip

    在Android开发中,"DropDownView.zip" 提供的是一个实现可跟随手指下拉的仿通知栏下拉效果的Activity。这种效果通常用于自定义下拉刷新或者创建类似通知栏的交互体验,使得用户界面更加生动且具有触觉反馈。下面我们...

    Android代码-非常 Material Design 风格的 Dropdown 效果。

    DropDownView Gradle Ensure your minSdkVersion is 19 or above: android { compileSdkVersion 25 defaultConfig { applicationId "com.anthonyfdev.dropdownviewexample" minSdkVersion 19 targetSdk...

    DropDownMenu:用Objective-C编写的动画下拉菜单

    下拉式菜单 用Objective-C编写的动画下拉菜单 *请★★如果您喜欢它的图书馆! ##安装## 我尚未为此项目设置Pod,因此,现在就安装它,只需将DDMenu文件夹拖放到您的XCode项目中即可。...DDMenuItem *i

    Android代码-android-dropdown-menu

    android-dropdown-menu An dropdown menu for android, you can attach ... mDropdownView = (DropdownView) findViewById(R.id.dropdown_view); mDropdownView.setup(simpleListView1, simpleListView2); mDropdow

    iOS 下拉按钮 灰常好用

    let dropdownView = UITableView() dropdownView.dataSource = self // 添加数据 let items = ["选项1", "选项2", "选项3"] dropdownView.reloadData() // ... @objc func dropdownTapped() { // 显示/...

    自定义spinner

    TextView dropdownView = (TextView) LayoutInflater.from(context).inflate(R.layout.custom_spinner_dropdown_item, parent, false); // 设置数据 dropdownView.setText(items.get(position)); return ...

    MRCommon:许多常用方法的集合

    通用先生 MRCommon集合了许多常用方法,我根据功能将其分为以下几类: [BaseInherit]-继承的基类 [ESUnit]-OpelGL ES 3.0的封装着色器,形状,变换。... 请参见Example/DropDownView(筛选框) 参见Example/SingleSwit

    高仿美团级联菜单(原创)

    为了达到美团级联菜单的效果,开发者可能需要自定义Spinner的DropdownView,并在点击事件中动态加载下级菜单的数据。 此外,项目中可能涉及了数据结构的设计。由于级联菜单涉及到多级关联,所以数据模型可能采用树...

    Android高级应用源码-全国省市县下拉地址选择源码.rar

    1. 省市区选择器通常采用Spinner或自定义的DropdownView,提供级联选择效果。 2. 使用Adapter将数据模型转化为ListView或RecyclerView的Item,每个Item展示一个地区选项。 3. 实现滚动监听,当用户选择一个省份后,...

    安卓下拉选择控件

    在安卓应用开发中,下拉选择控件是用户界面...在实际项目中,我们可以根据需求选择自定义控件或使用现有库,结合文件名"DropDownView"推测,这可能是作者实现的一个自定义下拉选择控件,可能包含了上述功能的实现代码。

    spinner 下拉菜单源码

    2. 自定义布局:可以通过设置 Spinner的android:popupBackground属性来自定义下拉列表的背景,同时可以修改DropdownView的布局文件来定制每个条目的显示效果。 五、源码解析 深入研究Spinner的源码可以帮助我们了解...

    Android应用源码之MySpinner-IT计算机-毕业设计.zip

    4. **自定义ViewGroup**:如果MySpinner实现了自定义的DropdownView,需要研究其绘制和测量过程。 5. **样式和主题**:检查项目的res/values目录,看是否自定义了主题和样式资源。 四、毕业设计与论文 在毕业设计...

    Android 非常Material Design风格的Dropdown效果特效代码

    Android的Dropdown效果通常通过Spinner组件实现,但为了达到非常Material Design风格,可能需要自定义一个名为`DropDownView`的View类。自定义View允许开发者根据需求扩展Android的基础组件,实现独特的交互和视觉...

    Android编程实现仿QQ发表说说,上传照片及弹出框效果【附demo源码下载】

    布局文件中包含添加数据的按钮(`addDataIv`)、下拉功能菜单(`dropDownView`)以及背景视图(`bgView`)。按钮用于触发弹出框的显示和隐藏,而背景视图用于实现点击背景时隐藏菜单的功能。 其次,Android的事件...

    Android个性化下拉列表

    如果你需要更复杂的定制,可以创建一个自定义的DropdownView。 3. **处理触摸事件**: 在自定义Adapter中,可能需要处理触摸事件,比如点击或滑动事件,以实现特殊的行为。 4. **自定义下拉动画**: 如果想在...

Global site tag (gtag.js) - Google Analytics