prefs_widgets.h
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:5k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * prefs_widgets.h: Preferences controls
  3.  *****************************************************************************
  4.  * Copyright (C) 2002-2007 the VideoLAN team
  5.  * $Id: 8d44a7733481de855f405c96669bb57c8b1f248d $
  6.  *
  7.  * Authors: Derk-Jan Hartman <hartman at videolan.org>
  8.  *
  9.  * This program is free software; you can redistribute it and/or modify
  10.  * it under the terms of the GNU General Public License as published by
  11.  * the Free Software Foundation; either version 2 of the License, or
  12.  * (at your option) any later version.
  13.  *
  14.  * This program is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this program; if not, write to the Free Software
  21.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  22.  *****************************************************************************/
  23. #define CONFIG_ITEM_STRING_LIST (CONFIG_ITEM_STRING + 1)
  24. #define CONFIG_ITEM_RANGED_INTEGER (CONFIG_ITEM_INTEGER + 1)
  25. #define CONFIG_ITEM_KEY_AFTER_10_3 (CONFIG_ITEM_KEY + 2)
  26. #define LEFTMARGIN  18
  27. #define RIGHTMARGIN 18
  28. static NSMenu   *o_keys_menu = nil;
  29. @interface VLCConfigControl : NSView
  30. {
  31.     module_config_t *p_item;
  32.     char            *psz_name;
  33.     NSTextField     *o_label;
  34.     int             i_type;
  35.     int             i_view_type;
  36.     bool      b_advanced;
  37. }
  38. + (VLCConfigControl *)newControl: (module_config_t *)_p_item
  39.         withView: (NSView *)o_parent_view;
  40. - (id)initWithFrame: (NSRect)frame item: (module_config_t *)p_item;
  41. - (NSString *)name;
  42. - (int)type;
  43. - (int)viewType;
  44. - (BOOL)isAdvanced;
  45. - (void)setYPos:(int)i_yPos;
  46. - (int)intValue;
  47. - (float)floatValue;
  48. - (char *)stringValue;
  49. - (void)applyChanges;
  50. - (void)resetValues;
  51. - (int)labelSize;
  52. - (void) alignWithXPosition:(int)i_xPos;
  53. + (int)calcVerticalMargin: (int)i_curItem lastItem:(int)i_lastItem;
  54. @end
  55. @interface StringConfigControl : VLCConfigControl
  56. {
  57.     NSTextField     *o_textfield;
  58. }
  59. - (id) initWithItem: (module_config_t *)_p_item
  60.            withView: (NSView *)o_parent_view;
  61. @end
  62. @interface StringListConfigControl : VLCConfigControl
  63. {
  64.     NSComboBox      *o_combo;
  65. }
  66. - (id) initWithItem: (module_config_t *)_p_item
  67.            withView: (NSView *)o_parent_view;
  68. @end
  69. @interface FileConfigControl : VLCConfigControl
  70. {
  71.     NSTextField     *o_textfield;
  72.     NSButton        *o_button;
  73.     BOOL            b_directory;
  74. }
  75. - (id) initWithItem: (module_config_t *)_p_item
  76.            withView: (NSView *)o_parent_view;
  77. - (IBAction)openFileDialog: (id)sender;
  78. - (void)pathChosenInPanel:(NSOpenPanel *)o_sheet withReturn:(int)i_return_code contextInfo:(void  *)o_context_info;
  79. @end
  80. @interface ModuleConfigControl : VLCConfigControl
  81. {
  82.     NSPopUpButton   *o_popup;
  83. }
  84. - (id) initWithItem: (module_config_t *)_p_item
  85.            withView: (NSView *)o_parent_view;
  86. @end
  87. @interface IntegerConfigControl : VLCConfigControl
  88. {
  89.     NSTextField     *o_textfield;
  90.     NSStepper       *o_stepper;
  91. }
  92. - (id) initWithItem: (module_config_t *)_p_item
  93.            withView: (NSView *)o_parent_view;
  94. - (IBAction)stepperChanged:(id)sender;
  95. - (void)textfieldChanged:(NSNotification *)o_notification;
  96. @end
  97. @interface IntegerListConfigControl : VLCConfigControl
  98. {
  99.     NSComboBox      *o_combo;
  100. }
  101. - (id) initWithItem: (module_config_t *)_p_item
  102.            withView: (NSView *)o_parent_view;
  103. @end
  104. @interface RangedIntegerConfigControl : VLCConfigControl
  105. {
  106.     NSSlider        *o_slider;
  107.     NSTextField     *o_textfield;
  108.     NSTextField     *o_textfield_min;
  109.     NSTextField     *o_textfield_max;
  110. }
  111. - (id) initWithItem: (module_config_t *)_p_item
  112.            withView: (NSView *)o_parent_view;
  113. - (IBAction)sliderChanged:(id)sender;
  114. - (void)textfieldChanged:(NSNotification *)o_notification;
  115. @end
  116. @interface BoolConfigControl : VLCConfigControl
  117. {
  118.     NSButton        *o_checkbox;
  119. }
  120. - (id) initWithItem: (module_config_t *)_p_item
  121.            withView: (NSView *)o_parent_view;
  122. @end
  123. @interface FloatConfigControl : VLCConfigControl
  124. {
  125.     NSTextField     *o_textfield;
  126.     NSStepper       *o_stepper;
  127. }
  128. - (id) initWithItem: (module_config_t *)_p_item
  129.            withView: (NSView *)o_parent_view;
  130. - (IBAction)stepperChanged:(id)sender;
  131. - (void)textfieldChanged:(NSNotification *)o_notification;
  132. @end
  133. @interface RangedFloatConfigControl : VLCConfigControl
  134. {
  135.     NSSlider        *o_slider;
  136.     NSTextField     *o_textfield;
  137.     NSTextField     *o_textfield_min;
  138.     NSTextField     *o_textfield_max;
  139. }
  140. - (id) initWithItem: (module_config_t *)_p_item
  141.            withView: (NSView *)o_parent_view;
  142. - (IBAction)sliderChanged:(id)sender;
  143. - (void)textfieldChanged:(NSNotification *)o_notification;
  144. @end
  145. @interface KeyConfigControl : VLCConfigControl
  146. {
  147.     NSPopUpButton   *o_popup;
  148. }
  149. - (id) initWithItem: (module_config_t *)_p_item
  150.            withView: (NSView *)o_parent_view;
  151. @end
  152. @interface ModuleListConfigControl : VLCConfigControl
  153. {
  154.     NSTextField     *o_textfield;
  155.     NSScrollView    *o_scrollview;
  156.     NSMutableArray  *o_modulearray;
  157. }
  158. - (id) initWithItem: (module_config_t *)_p_item
  159.            withView: (NSView *)o_parent_view;
  160. @end
  161. //#undef CONFIG_ITEM_LIST_STRING
  162. //#undef CONFIG_ITEM_RANGED_INTEGER
  163. //#undef CONFIG_ITEM_KEY_AFTER_10_3