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

📄 build_ranges.c

📁 Coriander is a GUI for controlling a Digital Camera (in the sense of the IIDC specs issued by the 1
💻 C
📖 第 1 页 / 共 2 页
字号:
    gtk_menu_append (GTK_MENU (new_menu), glade_menuitem);    gtk_signal_connect (GTK_OBJECT (glade_menuitem), "activate",			GTK_SIGNAL_FUNC (on_range_menu_activate),			(int*)(feature*1000+RANGE_MENU_ABSOLUTE));  }    gtk_option_menu_set_menu (GTK_OPTION_MENU (new_option_menu), new_menu);    // BUILD SCALE: ====================================================================================  switch(feature) {  case FEATURE_WHITE_BALANCE:    adjustment=(GtkAdjustment*)gtk_adjustment_new(camera->feature_set.feature[feature-FEATURE_MIN].min,						  camera->feature_set.feature[feature-FEATURE_MIN].min,						  camera->feature_set.feature[feature-FEATURE_MIN].max,1,10,0);    adjustment2=(GtkAdjustment*)gtk_adjustment_new(camera->feature_set.feature[feature-FEATURE_MIN].min,						   camera->feature_set.feature[feature-FEATURE_MIN].min,						   camera->feature_set.feature[feature-FEATURE_MIN].max,1,10,0);    scale = gtk_hscale_new (adjustment);    gtk_widget_ref (scale);    sprintf(stemp,"feature_%d_bu_scale",feature);    gtk_object_set_data_full (GTK_OBJECT (main_window), stemp, scale,			      (GtkDestroyNotify) gtk_widget_unref);    gtk_widget_show (scale);    sprintf(stemp,"feature_%d_table",feature);    gtk_table_attach (GTK_TABLE (lookup_widget(main_window,stemp)), scale, 1, RANGE_TABLE_WIDTH, 1, 2,		      (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),		      (GtkAttachOptions) (GTK_FILL), 0, 0);    gtk_widget_set_sensitive (scale, TRUE);    gtk_scale_set_digits (GTK_SCALE (scale), 0);    scale2 = gtk_hscale_new (adjustment);    gtk_widget_ref (scale2);    sprintf(stemp,"feature_%d_rv_scale",feature);    gtk_object_set_data_full (GTK_OBJECT (main_window), stemp, scale2,			      (GtkDestroyNotify) gtk_widget_unref);    gtk_widget_show (scale2);    sprintf(stemp,"feature_%d_table",feature);    gtk_table_attach (GTK_TABLE (lookup_widget(main_window,stemp)), scale2, 1, RANGE_TABLE_WIDTH, 2, 3,		      (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),		      (GtkAttachOptions) (GTK_FILL), 0, 0);    gtk_widget_set_sensitive (scale2, TRUE);    gtk_scale_set_digits (GTK_SCALE (scale2), 0);    gtk_range_set_adjustment((GtkRange*)scale,adjustment);    gtk_range_set_adjustment((GtkRange*)scale2,adjustment2);    // connect:    gtk_signal_connect (GTK_OBJECT (adjustment), "value_changed", GTK_SIGNAL_FUNC (on_scale_value_changed), (int*) FEATURE_WHITE_BALANCE+BU);    gtk_signal_connect (GTK_OBJECT (adjustment2), "value_changed", GTK_SIGNAL_FUNC (on_scale_value_changed), (int*) FEATURE_WHITE_BALANCE+RV);    break;  case FEATURE_TEMPERATURE:    adjustment=(GtkAdjustment*)gtk_adjustment_new(camera->feature_set.feature[feature-FEATURE_MIN].min,						  camera->feature_set.feature[feature-FEATURE_MIN].min,						  camera->feature_set.feature[feature-FEATURE_MIN].max,1,10,0);    adjustment2=(GtkAdjustment*)gtk_adjustment_new(camera->feature_set.feature[feature-FEATURE_MIN].min,						   camera->feature_set.feature[feature-FEATURE_MIN].min,						   camera->feature_set.feature[feature-FEATURE_MIN].max,1,10,0);    scale = gtk_hscale_new (adjustment);    gtk_widget_ref (scale);    sprintf(stemp,"feature_%d_current_scale",feature);    gtk_object_set_data_full (GTK_OBJECT (main_window), stemp, scale,			      (GtkDestroyNotify) gtk_widget_unref);    gtk_widget_show (scale);    sprintf(stemp,"feature_%d_table",feature);    gtk_table_attach (GTK_TABLE (lookup_widget(main_window,stemp)), scale, 1, RANGE_TABLE_WIDTH, 1, 2,		      (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),		      (GtkAttachOptions) (GTK_FILL), 0, 0);    gtk_widget_set_sensitive (scale, TRUE);    gtk_scale_set_digits (GTK_SCALE (scale), 0);    scale2 = gtk_hscale_new (adjustment);    gtk_widget_ref (scale2);    sprintf(stemp,"feature_%d_target_scale",feature);    gtk_object_set_data_full (GTK_OBJECT (main_window), stemp, scale2,			      (GtkDestroyNotify) gtk_widget_unref);    gtk_widget_show (scale2);    sprintf(stemp,"feature_%d_table",feature);    gtk_table_attach (GTK_TABLE (lookup_widget(main_window,stemp)), scale2, 1, RANGE_TABLE_WIDTH, 2, 3,		      (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),		      (GtkAttachOptions) (GTK_FILL), 0, 0);    gtk_widget_set_sensitive (scale2, TRUE);    gtk_scale_set_digits (GTK_SCALE (scale2), 0);    gtk_range_set_adjustment((GtkRange*)scale,adjustment);    gtk_range_set_adjustment((GtkRange*)scale2,adjustment2);    // connect:    gtk_signal_connect (GTK_OBJECT (adjustment), "value_changed", GTK_SIGNAL_FUNC (on_scale_value_changed), (int*) FEATURE_TEMPERATURE);    break;  case FEATURE_WHITE_SHADING:    fprintf(stderr,"Not implemented\n");    break;      default:    adjustment=(GtkAdjustment*)gtk_adjustment_new(camera->feature_set.feature[feature-FEATURE_MIN].min,						  camera->feature_set.feature[feature-FEATURE_MIN].min,						  camera->feature_set.feature[feature-FEATURE_MIN].max,1,10,0);    scale = gtk_hscale_new (adjustment);    gtk_widget_ref (scale);    sprintf(stemp,"feature_%d_scale",feature);    gtk_object_set_data_full (GTK_OBJECT (main_window), stemp, scale,			      (GtkDestroyNotify) gtk_widget_unref);    gtk_widget_show (scale);    sprintf(stemp,"feature_%d_table",feature);    if (camera->feature_set.feature[feature-FEATURE_MIN].absolute_capable!=0) {      gtk_table_attach (GTK_TABLE (lookup_widget(main_window,stemp)), scale, 0, RANGE_TABLE_WIDTH, 1, 2,			(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),			(GtkAttachOptions) (GTK_FILL), 0, 0);    }    else {      gtk_table_attach (GTK_TABLE (lookup_widget(main_window,stemp)), scale, 1, RANGE_TABLE_WIDTH, 0, 1,			(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),			(GtkAttachOptions) (GTK_FILL), 0, 0);    }    gtk_widget_set_sensitive (scale, TRUE);    gtk_scale_set_digits (GTK_SCALE (scale), 0);    gtk_range_set_adjustment((GtkRange*)scale,adjustment);    // connect:    gtk_signal_connect (GTK_OBJECT (adjustment), "value_changed", GTK_SIGNAL_FUNC (on_scale_value_changed), (int*) feature);      }  // common action for absolute settings:  if (camera->feature_set.feature[feature-FEATURE_MIN].absolute_capable!=0) {    // entry    abs_entry = gtk_entry_new ();    gtk_widget_ref (abs_entry);    sprintf(stemp,"feature_%d_abs_entry",feature);    gtk_object_set_data_full (GTK_OBJECT (main_window), stemp, abs_entry,			      (GtkDestroyNotify) gtk_widget_unref);    gtk_widget_show (abs_entry);    sprintf(stemp,"feature_%d_table",feature);    gtk_table_attach (GTK_TABLE (lookup_widget(main_window,stemp)), abs_entry, 2, RANGE_TABLE_WIDTH-1, 0, 1,		      (GtkAttachOptions) (GTK_EXPAND|GTK_FILL),		      (GtkAttachOptions) (0), 0, 0);    gtk_signal_connect (GTK_OBJECT (abs_entry), "activate",                      GTK_SIGNAL_FUNC (on_abs_entry_activate),                      (int*)feature);    // label    label = gtk_label_new (_(feature_abs_label_list[feature-FEATURE_MIN]));    gtk_widget_ref (label);    sprintf(stemp,"feature_%d_abs_label",feature);    gtk_object_set_data_full (GTK_OBJECT (main_window), stemp, label,			      (GtkDestroyNotify) gtk_widget_unref);    gtk_label_set_justify(GTK_LABEL(label),GTK_JUSTIFY_LEFT);    gtk_widget_show (label);    sprintf(stemp,"feature_%d_table",feature);    gtk_table_attach (GTK_TABLE (lookup_widget(main_window,stemp)), label, RANGE_TABLE_WIDTH-1, RANGE_TABLE_WIDTH, 0, 1,		      (GtkAttachOptions) (GTK_FILL|GTK_FILL),		      (GtkAttachOptions) (0), 10, 0);    gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);  }  free(stemp);}voidBuildFormat7Ranges(void){    GtkAdjustment  *adjustment_px, *adjustment_py, *adjustment_sx, *adjustment_sy;  Format7ModeInfo_t *info;    info=&camera->format7_info.mode[camera->format7_info.edit_mode-MODE_FORMAT7_MIN];  //fprintf(stderr,"size: %d %d\n",info->max_size_x,info->max_size_y);  // define the adjustments for the 4 format7 controls. Note that (pos_x+size_x)<=max_size_x which yields some inter-dependencies  // define adjustement for X-position  adjustment_px=(GtkAdjustment*)gtk_adjustment_new(info->pos_x,0,info->max_size_x-info->size_x,info->unit_pos_x,info->unit_pos_x*4,0);  gtk_range_set_adjustment((GtkRange*)lookup_widget(main_window, "format7_hposition_scale"),adjustment_px);  camera->format7_info.scale_posx_handle=gtk_signal_connect(GTK_OBJECT (adjustment_px), "value_changed", 							    GTK_SIGNAL_FUNC (on_format7_value_changed), (int*) FORMAT7_POS_X);  gtk_range_set_update_policy ((GtkRange*)lookup_widget(main_window, "format7_hposition_scale"), GTK_UPDATE_DELAYED);    // define adjustement for Y-position   adjustment_py=(GtkAdjustment*)gtk_adjustment_new(info->pos_y,0,info->max_size_y-info->size_y,info->unit_pos_y,info->unit_pos_y*4,0);  gtk_range_set_adjustment((GtkRange*)lookup_widget(main_window, "format7_vposition_scale"),adjustment_py);  camera->format7_info.scale_posy_handle=gtk_signal_connect(GTK_OBJECT (adjustment_py), "value_changed", 							    GTK_SIGNAL_FUNC (on_format7_value_changed), (int*) FORMAT7_POS_Y);  gtk_range_set_update_policy ((GtkRange*)lookup_widget(main_window, "format7_vposition_scale"), GTK_UPDATE_DELAYED);  // define adjustement for X-size  adjustment_sx=(GtkAdjustment*)gtk_adjustment_new(info->size_x,info->unit_size_x,info->max_size_x-info->pos_x,info->unit_size_x,info->unit_size_x*4,0);  gtk_range_set_adjustment((GtkRange*)lookup_widget(main_window, "format7_hsize_scale"),adjustment_sx);  camera->format7_info.scale_sizex_handle=gtk_signal_connect(GTK_OBJECT (adjustment_sx), "value_changed", 							     GTK_SIGNAL_FUNC (on_format7_value_changed), (int*) FORMAT7_SIZE_X);  gtk_range_set_update_policy ((GtkRange*)lookup_widget(main_window, "format7_hsize_scale"), GTK_UPDATE_DELAYED);  // define adjustement for X-size  adjustment_sy=(GtkAdjustment*)gtk_adjustment_new(info->size_y,info->unit_size_y,info->max_size_y-info->pos_y,info->unit_size_y,info->unit_size_y*4,0);  gtk_range_set_adjustment((GtkRange*)lookup_widget(main_window, "format7_vsize_scale"),adjustment_sy);  camera->format7_info.scale_sizey_handle=gtk_signal_connect(GTK_OBJECT (adjustment_sy), "value_changed", 							     GTK_SIGNAL_FUNC (on_format7_value_changed), (int*) FORMAT7_SIZE_Y);  gtk_range_set_update_policy ((GtkRange*)lookup_widget(main_window, "format7_vsize_scale"), GTK_UPDATE_DELAYED);  gtk_signal_emit_by_name(GTK_OBJECT (adjustment_sx), "changed");  gtk_signal_emit_by_name(GTK_OBJECT (adjustment_sy), "changed");  gtk_signal_emit_by_name(GTK_OBJECT (adjustment_px), "changed");  gtk_signal_emit_by_name(GTK_OBJECT (adjustment_sy), "changed");}voidBuildFormat7BppRange(void){   GtkAdjustment *adjustment_packet;  Format7ModeInfo_t *info;  info=&camera->format7_info.mode[camera->format7_info.edit_mode-MODE_FORMAT7_MIN];  // define adjustment for packet size:  adjustment_packet=(GtkAdjustment*)gtk_adjustment_new(info->bpp,info->min_bpp,info->max_bpp,1,(info->max_bpp-info->min_bpp)/16,0);  // min_bpp is the minimum bpp, but also the 'unit' bpp.  gtk_range_set_adjustment((GtkRange*)lookup_widget(main_window, "format7_packet_size"),adjustment_packet);  gtk_signal_connect(GTK_OBJECT (adjustment_packet), "value_changed", GTK_SIGNAL_FUNC (on_format7_packet_size_changed),(int*)0);  gtk_range_set_update_policy ((GtkRange*)lookup_widget(main_window, "format7_packet_size"), GTK_UPDATE_DELAYED);  }

⌨️ 快捷键说明

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