⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lists.bash

📁 gtk_server的源代码
💻 BASH
字号:
#!/bin/bash# Name of PIPE filedeclare PI=/tmp/bash.gtk.$$# Communication function; assignment functionfunction gtk() { echo $1 > $PI; read GTK < $PI; }function define() { $2 "$3"; eval $1=$GTK; }#----------------------------------------------------------------------------------# Define some constantsNULL="NULL"FIRST_COL=0SECOND_COL=1NUM_COLS=2TRUE=1# Start gtk-server in FIFO modegtk-server -fifo=$PI &while [ ! -p $PI ]; do continue; done# Initialize GTKgtk "gtk_init $NULL $NULL"# Define main window and some attributesdefine WINDOW gtk "gtk_window_new GTK_WINDOW_TOPLEVEL"gtk "gtk_window_set_title $WINDOW 'Floats in lists'"gtk "gtk_window_set_resizable $WINDOW 0"gtk "gtk_window_set_icon_name $WINDOW gtk-info"gtk "gtk_widget_set_size_request $WINDOW 200 200"# Create a modeldefine VIEW gtk "gtk_tree_view_new"gtk "gtk_tree_view_set_headers_clickable $VIEW $TRUE"gtk "gtk_tree_view_set_grid_lines $VIEW 3"# Create columnsdefine COLUMN1 gtk "gtk_tree_view_column_new"gtk "gtk_tree_view_column_set_title $COLUMN1 Column1"gtk "gtk_tree_view_append_column $VIEW $COLUMN1"gtk "gtk_tree_view_column_set_resizable $COLUMN1 $TRUE"gtk "gtk_tree_view_column_set_clickable $COLUMN1 $TRUE"define COLUMN2 gtk "gtk_tree_view_column_new"gtk "gtk_tree_view_column_set_title $COLUMN2 Column2"gtk "gtk_tree_view_append_column $VIEW $COLUMN2"gtk "gtk_tree_view_column_set_resizable $COLUMN2 $TRUE"gtk "gtk_tree_view_column_set_clickable $COLUMN2 $TRUE"# Create renderers to show contentsdefine RENDERER1 gtk "gtk_cell_renderer_text_new"gtk "gtk_tree_view_column_pack_start $COLUMN1 $RENDERER1 $TRUE"define RENDERER2 gtk "gtk_cell_renderer_text_new"gtk "gtk_tree_view_column_pack_start $COLUMN2 $RENDERER2 $TRUE"# Define the store where the actual data is keptgtk "gtk_server_redefine gtk_list_store_new NONE WIDGET 3 INT INT INT"define LST gtk "gtk_list_store_new 2 G_TYPE_DOUBLE G_TYPE_DOUBLE"# Fill store with some datadefine ITER gtk "gtk_server_opaque"gtk "gtk_server_redefine gtk_list_store_set NONE NONE 5 WIDGET WIDGET INT DOUBLE INT"gtk "gtk_list_store_append $LST $ITER"gtk "gtk_list_store_set $LST $ITER $FIRST_COL 1.23456 -1"gtk "gtk_list_store_set $LST $ITER $SECOND_COL 9.87654 -1"gtk "gtk_list_store_append $LST $ITER"gtk "gtk_list_store_set $LST $ITER $FIRST_COL 5.43210 -1"gtk "gtk_list_store_set $LST $ITER $SECOND_COL 4.56789 -1"gtk "gtk_list_store_append $LST $ITER"gtk "gtk_list_store_set $LST $ITER $FIRST_COL 10.13578 -1"gtk "gtk_list_store_set $LST $ITER $SECOND_COL 1.010101 -1"# Attach store to modelgtk "gtk_tree_view_set_model $VIEW $LST"# Make sure all memory is released when the model is destroyedgtk "g_object_unref $LST"# Set the mode of the viewdefine SEL gtk "gtk_tree_view_get_selection $VIEW"gtk "gtk_tree_selection_set_mode $SEL GTK_SELECTION_SINGLE"# Define a scrolled windowdefine SW gtk "gtk_scrolled_window_new $NULL $NULL"gtk "gtk_scrolled_window_set_policy $SW 1 1"gtk "gtk_scrolled_window_set_shadow_type $SW 1"gtk "gtk_container_add $SW $VIEW"# Now register a 'userfunction' for both columns - using different macros with different column numbergtk "gtk_server_define gtk_tree_view_column_set_cell_data_func NONE NONE 5 WIDGET WIDGET MACRO DATA NULL"gtk "gtk_tree_view_column_set_cell_data_func $COLUMN1 $RENDERER1 GtkTreeCellDataFunc_1 $FIRST_COL $NULL"gtk "gtk_tree_view_column_set_cell_data_func $COLUMN2 $RENDERER2 GtkTreeCellDataFunc_2 $SECOND_COL $NULL"# Finish guigtk "gtk_container_add $WINDOW $SW"gtk "gtk_widget_show_all $WINDOW"# Set ordering variableORDER_FIRST=0ORDER_SECOND=1# MAINLOOPuntil [[ $EVENT = $WINDOW ]]do    define EVENT gtk "gtk_server_callback wait"    case $EVENT in	$COLUMN1)	    let ORDER_FIRST=1-$ORDER_FIRST	    let ORDER_SECOND=1-$ORDER_SECOND	    gtk "gtk_tree_sortable_set_sort_column_id $LST $FIRST_COL $ORDER_FIRST";;        $COLUMN2)	    let ORDER_FIRST=1-$ORDER_FIRST	    let ORDER_SECOND=1-$ORDER_SECOND	    gtk "gtk_tree_sortable_set_sort_column_id $LST $SECOND_COL $ORDER_SECOND";;    esacdonegtk "gtk_server_exit"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -