def __init__(self, answers, checkbutton = None, box = None): """ \param answers - list like in \ref select_control.select_control.update_answers \param checkbutton - gtk.ToggleButton instance, control show state of box \param box - gtk.Container instance with all widgets packed in to hide or show """ if checkbutton != None and box != None: self.hiders = [hide_control(checkbutton, box)] select_control.__init__(self, answers, checkbutton)
def __init__(self, parent): assert(isinstance(parent, gtk_view.gtk_view)) self._parent = parent self.builder = make_builder('glade/deal_editor.glade') def shorter(name): return self.builder.get_object(name) w = self.builder.get_object("deal_editor") w.add_buttons(gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL) ########## # hiders # ########## self.hiders = [] for (hcb, box) in [("deal_editor_change_datetime", "deal_editor_datetime_box"), ("deal_editor_change_direction", "deal_editor_direction_box"), ("deal_editor_change_account", "deal_adder_account1"), ("deal_editor_change_instrument", "deal_editor_instrument"), ("deal_editor_change_price", "deal_adder_price1"), ("deal_editor_change_count", "deal_adder_count1"), ("deal_editor_change_commission", "deal_editor_commission")]: cb = self.builder.get_object(hcb) bb = self.builder.get_object(box) self.hiders.append(hide_control(cb, [bb])) pass #################### # datetime control # #################### self.datetime = datetime_control(shorter("deal_adder_calendar1"), time_control(shorter("deal_adder_hour1"), shorter("deal_adder_min1"), shorter("deal_adder_sec1")), checkbutton = shorter("deal_editor_change_datetime"), year = shorter("deal_editor_year"), month = shorter("deal_editor_month"), day = shorter("deal_editor_day")) self.instrument = combo_select_control(shorter("deal_editor_instrument"), checkbutton = shorter("deal_editor_change_instrument")) self.price = number_control(shorter("deal_adder_price1"), shorter("deal_editor_change_price"), step_incr = 0.1, digits = 4) self.count = number_control(shorter("deal_adder_count1"), shorter("deal_editor_change_count")) self.commission = number_control(shorter("deal_editor_commission"), shorter("deal_editor_change_commission"), step_incr = 0.1, digits = 4) for name in ["deal_adder_price1", "deal_adder_count1", "deal_editor_commission"]: m = shorter(name) m.get_adjustment().set_all(lower = 0, upper = sys.float_info.max) self.account = combo_select_control(shorter("deal_adder_account1"), checkbutton = shorter("deal_editor_change_account")) self.direction = select_control({-1 : shorter("deal_adder_buy_rb1"), 1 : shorter("deal_adder_sell_rb1")}, shorter("deal_editor_change_direction"))
def __init__(self, lower, upper, box = [], checkbutton = None): """ \param lower - hash table to construct controls over lower datetime widgets with keys:\n \c chbt - gtk.ToggleButton instance to pass into \ref datetime_control.datetime_control state of this widet will control appearance of the box\n \c box - gtk.Container instance to hide or show when chbt changed\n \c year - gtk.SpinButton instance to display year, pass to \ref datetime_control.datetime_control\n \c month - gtk.SpinButton instance to display month\n \c day - gtk.SpinButton instance\n \c calendar - gtk.Calendar instance to display date, passed into \ref datetime_control.datetime_control\n \c hour - gtk.SpinButton instance to display hour passed to \ref time_control.time_control\n \c min - gtk.SpinButton\n \c sec - gtk.SpinButton\n \c time_chbt - gtk.ToggleButton instance - checkbutton to control the show state of time_box\n \c time_box - gtk.Container instance, box with time controls - all that controled by \ref time_control.time_control \param upper hash table with same keys \param box - list of gtk.Container instances, boxes controled by checkbutton parameter state \param checkbutton - gtk.ToggleButton, when inactive widgets from box list will be hided """ self.hiders = [] for (bt, boxes) in [(checkbutton, box)] + reduce(lambda a, b: a + b, map(lambda h: [(gethash(h, "time_chbt"), [gethash(h, "time_box")]), (gethash(h, "chbt"), [gethash(h, "box")])], [lower, upper])): rbox = filter(lambda a: a != None, boxes) if bt != None and len(rbox) > 0: self.hiders.append(hide_control(bt, rbox)) subhide = filter(lambda a: a != None, map(lambda b: gethash(b, "chbt"), [lower, upper])) if len(subhide) > 0 and checkbutton != None: self.subhide = all_checked_control(checkbutton, subhide) times = map(lambda h: time_control( *map(lambda k: gethash(h, k), ["hour", "min", "sec", "time_chbt"])), [lower, upper]) dtimes = map(lambda cal, time, chbt, year, month, day: datetime_control(cal, time, chbt, year, month, day), map(lambda a: gethash(a, "calendar"), [lower, upper]), times, map(lambda a: gethash(a, "chbt"), [lower, upper]), map(lambda a: gethash(a, "year"), [lower, upper]), map(lambda a: gethash(a, "month"), [lower, upper]), map(lambda a: gethash(a, "day"), [lower, upper])) datetime_range_control.__init__(self, *(dtimes + [checkbutton]))
def __init__(self, lower_spin, upper_spin, global_box = None, global_chbt = None, lower_chbt = None, upper_chbt = None, step_incr = 1, digits = 0): """ \param lower_spin - gtk.SpinButton instance to display lower limit of range \param upper_spin - gtk.SpinButton instance to display upper limit of range \param global_box - gtk.Container with all widgets packed in to show or hide all the range-widget \param global_chbt - gtk.ToggleButton to control global_box show state \param lower_chbt - gtk.Container to control show state of lower range widget \param upper_chbt - gtk.Container to control show state of upper range widget \param step_incr - number, pass to \ref number_range_control.number_range_control \param digits - int, the same """ self.hiders = [] for (bt, box) in [(global_chbt, global_box), (lower_chbt, lower_spin), (upper_chbt, upper_spin)]: if bt != None and box != None: self.hiders.append(hide_control(bt, [box])) subhide = filter(lambda a: a != None, [lower_chbt, upper_chbt]) if len(subhide) > 0 and global_chbt != None: self.subhiders = all_checked_control(global_chbt, subhide) lower = number_control(lower_spin, lower_chbt, step_incr, digits) upper = number_control(upper_spin, upper_chbt, step_incr, digits) number_range_control.__init__(self, lower, upper, global_chbt)
def __init__(self, parent): self.builder = make_builder('glade/deals_filter.glade') self._parent = parent w = self.builder.get_object("deals_filter") w.set_transient_for(self._parent.window.builder.get_object('main_window')) w.add_button(gtk.STOCK_CLOSE, gtk.RESPONSE_ACCEPT) ###################### # hide controls init # ###################### self.hcontrols = [] for (cb, boxes) in [("deals_filter_datetime_range_cb", ["deals_filter_datetime_range_box"]), ("deals_filter_datetime_lower_cb", ["deals_filter_calendar_lower", "deals_filter_lower_time_box", "deals_filter_lower_year", "deals_filter_lower_month", "deals_filter_lower_day"]), ("deals_filter_datetime_upper_cb", ["deals_filter_calendar_upper", "deals_filter_upper_time_box", "deals_filter_upper_year", "deals_filter_upper_month", "deals_filter_upper_day"]), ("deals_filter_time_lower_cb", ["deals_filter_time_lower_box"]), ("deals_filter_time_upper_cb", ["deals_filter_time_upper_box"]), ("deals_filter_position_cb", ["deals_filter_position_box"]), ("deals_filter_direction_cb", ["deals_filter_direction_box"]), ("deals_filter_count_cb", ["deals_filter_count_box"]), ("deals_filter_price_cb", ["deals_filter_price_box"]), # ("deals_filter_broker_comm_cb", ["deals_filter_broker_comm_box"]), # ("deals_filter_stock_comm_cb", ["deals_filter_stock_comm_box"]), ("deals_filter_comm_cb", ["deals_filter_comm_box"]), ("deals_filter_volume_cb", ["deals_filter_volume_box"]), ("deals_filter_count_lower_cb", ["deals_filter_count_lower_spin"]), ("deals_filter_count_upper_cb", ["deals_filter_count_upper_spin"]), ("deals_filter_price_lower_cb", ["deals_filter_price_lower_spin"]), ("deals_filter_price_upper_cb", ["deals_filter_price_upper_spin"]), # ("deals_filter_broker_comm_lower_cb", ["deals_filter_broker_comm_lower_spin"]), # ("deals_filter_broker_comm_upper_cb", ["deals_filter_broker_comm_upper_spin"]), # ("deals_filter_stock_comm_lower_cb", ["deals_filter_stock_comm_lower_spin"]), # ("deals_filter_stock_comm_upper_cb", ["deals_filter_stock_comm_upper_spin"]), ("deals_filter_comm_lower_cb", ["deals_filter_comm_lower_spin"]), ("deals_filter_comm_upper_cb", ["deals_filter_comm_upper_spin"]), ("deals_filter_volume_lower_cb", ["deals_filter_volume_lower_spin"]), ("deals_filter_volume_upper_cb", ["deals_filter_volume_upper_spin"]), ("deals_filter_account_select", ["deals_filter_account_box"])]: self.hcontrols.append(hide_control(self.builder.get_object(cb), map(lambda a: self.builder.get_object(a), boxes))) ########################## # checkbuttons subhiders # ########################## self.subhcontrols = [] for (cb, subcbs) in [("deals_filter_datetime_range_cb", ["deals_filter_datetime_lower_cb", "deals_filter_datetime_upper_cb"]), ("deals_filter_count_cb", ["deals_filter_count_lower_cb", "deals_filter_count_upper_cb"]), ("deals_filter_price_cb", ["deals_filter_price_lower_cb", "deals_filter_price_upper_cb"]), # ("deals_filter_broker_comm_cb", ["deals_filter_broker_comm_lower_cb", "deals_filter_broker_comm_upper_cb"]), # ("deals_filter_stock_comm_cb", ["deals_filter_stock_comm_lower_cb", "deals_filter_stock_comm_upper_cb"]), ("deals_filter_comm_cb", ["deals_filter_comm_lower_cb", "deals_filter_comm_upper_cb"]), ("deals_filter_volume_cb", ["deals_filter_volume_lower_cb", "deals_filter_volume_upper_cb"])]: self.subhcontrols.append(all_checked_control(self.builder.get_object(cb), map(lambda a: self.builder.get_object(a), subcbs))) #################### # datetime control # #################### dtcontrols = [] for (dtcb, dtcal, tcb, h, m, s, year, month, day) in [("deals_filter_datetime_lower_cb", "deals_filter_calendar_lower", "deals_filter_time_lower_cb", "deals_filter_hour_lower_spin", "deals_filter_min_lower_spin", "deals_filter_sec_lower_spin", "deals_filter_lower_year", "deals_filter_lower_month", "deals_filter_lower_day"), ("deals_filter_datetime_upper_cb", "deals_filter_calendar_upper", "deals_filter_time_upper_cb", "deals_filter_hour_upper_spin", "deals_filter_min_upper_spin", "deals_filter_sec_upper_spin", "deals_filter_upper_year", "deals_filter_upper_month", "deals_filter_upper_day")]: tcon = time_control(self.builder.get_object(h), self.builder.get_object(m), self.builder.get_object(s), self.builder.get_object(tcb)) dtcon = datetime_control(self.builder.get_object(dtcal), tcon, checkbutton = self.builder.get_object(dtcb), year = self.builder.get_object(year), month = self.builder.get_object(month), day = self.builder.get_object(day)) dtcon.set_current_datetime() dtcontrols.append(dtcon) self.datetime_range = datetime_range_control(dtcontrols[0], dtcontrols[1], self.builder.get_object("deals_filter_datetime_range_cb")) ############################# # check instruments control # ############################# dfv = self.builder.get_object("deals_filter_view") rev = self.builder.get_object("deals_filter_revers_bt") sel = self.builder.get_object("deals_filter_select_bt") desel = self.builder.get_object("deals_filter_deselect_bt") self.instruments = check_control(dfv, u'', [['id', int], (u'Инструмент', gtk.CellRendererText())], reverse_button = rev, select_button = sel, deselect_button = desel) ########################## # check accounts control # ########################## acv = self.builder.get_object("deals_filter_account_view") acr = self.builder.get_object("deals_filter_account_reverse") acset = self.builder.get_object("deals_filter_account_set") acunset = self.builder.get_object("deals_filter_account_unset") self.accounts = check_control(acv, u'', [['id', int], (u'Счет', gtk.CellRendererText())], reverse_button = acr, select_button = acset, deselect_button = acunset) ################### # select controls # ################### self.position = select_control({False : self.builder.get_object("deals_filter_position_free_rb"), True : self.builder.get_object("deals_filter_position_occpied_rb")}, self.builder.get_object("deals_filter_position_cb")) self.direction = select_control({-1 : self.builder.get_object("deals_filter_direction_long_rb"), 1 : self.builder.get_object("deals_filter_direction_short_rb")}, self.builder.get_object("deals_filter_direction_cb")) self.account_current = select_control({"current" : self.builder.get_object("deals_filter_account_current"), "select" : self.builder.get_object("deals_filter_account_select"), "all" : self.builder.get_object("deals_filter_acount_all")}) ################## # number ranges # ################## self.count = number_range_control(number_control(self.builder.get_object("deals_filter_count_lower_spin"), self.builder.get_object("deals_filter_count_lower_cb")), number_control(self.builder.get_object("deals_filter_count_upper_spin"), self.builder.get_object("deals_filter_count_upper_cb")), self.builder.get_object("deals_filter_count_cb")) self.price = number_range_control(number_control(self.builder.get_object("deals_filter_price_lower_spin"), self.builder.get_object("deals_filter_price_lower_cb"), step_incr = 0.01, digits = 4), number_control(self.builder.get_object("deals_filter_price_upper_spin"), self.builder.get_object("deals_filter_price_upper_cb"), step_incr = 0.01, digits = 4), self.builder.get_object("deals_filter_price_cb")) self.comm = number_range_control(number_control(self.builder.get_object("deals_filter_comm_lower_spin"), self.builder.get_object("deals_filter_comm_lower_cb"), step_incr = 0.01, digits = 4), number_control(self.builder.get_object("deals_filter_comm_upper_spin"), self.builder.get_object("deals_filter_comm_upper_cb"), step_incr = 0.01, digits = 4), self.builder.get_object("deals_filter_comm_cb")) self.volume = number_range_control(number_control(self.builder.get_object("deals_filter_volume_lower_spin"), self.builder.get_object("deals_filter_volume_lower_cb"), digits = 4), number_control(self.builder.get_object("deals_filter_volume_upper_spin"), self.builder.get_object("deals_filter_volume_upper_cb"), digits = 4), self.builder.get_object("deals_filter_volume_cb")) self.time = hiding_time_distance_range_control({"chbt" : self.builder.get_object("deals_filter_use_time_lower"), "box" : self.builder.get_object("deals_filter_use_time_lower_box"), "hour" : self.builder.get_object("deals_filter_use_time_lower_hour"), "min" : self.builder.get_object("deals_filter_use_time_lower_min"), "sec" : self.builder.get_object("deals_filter_use_time_lower_sec")}, {"chbt" : self.builder.get_object("deals_filter_use_time_upper"), "box" : self.builder.get_object("deals_filter_use_time_upper_box"), "hour" : self.builder.get_object("deals_filter_use_time_upper_hour"), "min" : self.builder.get_object("deals_filter_use_time_upper_min"), "sec" : self.builder.get_object("deals_filter_use_time_upper_sec")}, [self.builder.get_object("deals_filter_use_time_box")], self.builder.get_object("deals_filter_use_time"))
def __init__(self, parent): self._parent = parent self.builder = make_builder('glade/positions_filter.glade') w = self.builder.get_object("positions_filter") w.set_transient_for(self._parent.window.builder.get_object('main_window')) w.add_buttons(gtk.STOCK_CLOSE, gtk.RESPONSE_CANCEL) def shorter(name): return self.builder.get_object(name) self.open_datetime = hiding_datetime_range_control({"chbt" : shorter("pfilter_open_datetime_lower"), "box" : shorter("pfilter_open_datetime_lower_box"), "year" : shorter("pfilter_open_lower_year"), "month" : shorter("pfilter_open_lower_month"), "day" : shorter("pfilter_open_lower_day"), "calendar" : shorter("pfilter_open_datetime_lower_calendar"), "hour" : shorter("pfilter_open_datetime_lower_hour"), "min" : shorter("pfilter_open_datetime_lower_min"), "sec" : shorter("pfilter_open_datetime_lower_sec"), "time_chbt" : shorter("pfilter_open_datetime_lower_time"), "time_box" : shorter("pfilter_open_datetime_lower_time_box")}, {"chbt" : shorter("pfilter_open_datetime_upper"), "box" : shorter("pfilter_open_datetime_upper_box"), "year" : shorter("pfilter_open_upper_year"), "month" : shorter("pfilter_open_upper_month"), "day" : shorter("pfilter_open_upper_day"), "calendar" : shorter("pfilter_open_datetime_upper_calendar"), "hour" : shorter("pfilter_open_datetime_upper_hour"), "min" : shorter("pfilter_open_datetime_upper_min"), "sec" : shorter("pfilter_open_datetime_upper_sec"), "time_chbt" : shorter("pfilter_open_datetime_upper_time"), "time_box" : shorter("pfilter_open_datetime_upper_time_box")}, [shorter("pfilter_open_datetime_lower_superbox"), shorter("pfilter_open_datetime_upper_superbox")], shorter("pfilter_open_datetime")) self.close_datetime = hiding_datetime_range_control({"chbt" : shorter("pfilter_close_datetime_lower"), "box" : shorter("pfilter_close_datetime_lower_box"), "calendar" : shorter("pfilter_close_datetime_lower_calendar"), "year" : shorter("pfilter_close_lower_year"), "month" : shorter("pfilter_close_lower_month"), "day" : shorter("pfilter_close_lower_day"), "hour" : shorter("pfilter_close_datetime_lower_hour"), "min" : shorter("pfilter_close_datetime_lower_min"), "sec" : shorter("pfilter_close_datetime_lower_sec"), "time_chbt" : shorter("pfilter_close_datetime_lower_time"), "time_box" : shorter("pfilter_close_datetime_lower_time_box")}, {"chbt" : shorter("pfilter_close_datetime_upper"), "box" : shorter("pfilter_close_datetime_upper_box"), "calendar" : shorter("pfilter_close_datetime_upper_calendar"), "year" : shorter("pfilter_close_upper_year"), "month" : shorter("pfilter_close_upper_month"), "day" : shorter("pfilter_close_upper_day"), "hour" : shorter("pfilter_close_datetime_upper_hour"), "min" : shorter("pfilter_close_datetime_upper_min"), "sec" : shorter("pfilter_close_datetime_upper_sec"), "time_chbt" : shorter("pfilter_close_datetime_upper_time"), "time_box" : shorter("pfilter_close_datetime_upper_time_box")}, [shorter("pfilter_close_datetime_lower_superbox"), shorter("pfilter_close_datetime_upper_superbox")], shorter("pfilter_close_datetime")) self.direction = hiding_select_control({-1 : shorter("pfilter_direction_long"), 1 : shorter("pfilter_direction_short")}, shorter("pfilter_direction"), shorter("pfilter_direction_box")) self.count = hiding_number_range_control(shorter("pfilter_count_lower_spin"), shorter("pfilter_count_upper_spin"), shorter("pfilter_count_box"), shorter("pfilter_count"), shorter("pfilter_count_lower"), shorter("pfilter_count_upper")) self.price = hiding_number_range_control(shorter("pfilter_coast_lower_spin"), shorter("pfilter_coast_upper_spin"), shorter("pfilter_coast_box"), shorter("pfilter_coast"), shorter("pfilter_coast_lower"), shorter("pfilter_coast_upper"), step_incr = 0.1, digits = 4) self.volume = hiding_number_range_control(shorter("pfilter_volume_lower_spin"), shorter("pfilter_volume_upper_spin"), shorter("pfilter_volume_box"), shorter("pfilter_volume"), shorter("pfilter_volume_lower"), shorter("pfilter_volume_upper"), digits = 4) self.plnet_acc = hiding_number_range_control(shorter("pfilter_plnet_acc_lower_spin"), shorter("pfilter_plnet_acc_upper_spin"), shorter("pfilter_plnet_acc_box"), shorter("pfilter_plnet_acc"), shorter("pfilter_plnet_acc_lower"), shorter("pfilter_plnet_acc_upper"), step_incr = 0.1, digits = 4) self.plnet_volume = hiding_number_range_control(shorter("pfilter_plnet_volume_lower_spin"), shorter("pfilter_plnet_volume_upper_spin"), shorter("pfilter_plnet_volume_box"), shorter("pfilter_plnet_volume"), shorter("pfilter_plnet_volume_lower"), shorter("pfilter_plnet_volume_upper"), step_incr = 0.1, digits = 4) self.comm_plgross = hiding_number_range_control(shorter("pfilter_comm_plgross_lower_spin"), shorter("pfilter_comm_plgross_upper_spin"), shorter("pfilter_comm_plgross_box"), shorter("pfilter_comm_plgross"), shorter("pfilter_comm_plgross_lower"), shorter("pfilter_comm_plgross_upper"), step_incr = 0.1, digits = 4) self.price_range = hiding_number_range_control(shorter("pfilter_price_range_lower_spin"), shorter("pfilter_price_range_upper_spin"), shorter("pfilter_price_range_box"), shorter("pfilter_price_range"), shorter("pfilter_price_range_lower"), shorter("pfilter_price_range_upper"), step_incr = 0.1, digits = 4) self.plgross = hiding_number_range_control(shorter("pfilter_plgross_lower_spin"), shorter("pfilter_plgross_upper_spin"), shorter("pfilter_plgross_box"), shorter("pfilter_plgross"), shorter("pfilter_plgross_lower"), shorter("pfilter_plgross_upper"), step_incr = 0.1, digits = 4) self.plnet = hiding_number_range_control(shorter("pfilter_plnet_lower_spin"), shorter("pfilter_plnet_upper_spin"), shorter("pfilter_plnet_box"), shorter("pfilter_plnet"), shorter("pfilter_plnet_lower"), shorter("pfilter_plnet_upper"), step_incr = 0.1, digits = 4) self.comm = hiding_number_range_control(shorter("pfilter_comm_lower_spin"), shorter("pfilter_comm_upper_spin"), shorter("pfilter_comm_box"), shorter("pfilter_comm"), shorter("pfilter_comm_lower"), shorter("pfilter_comm_upper"), step_incr = 0.1, digits = 4) self.loss_profit = hiding_select_control({1 : shorter("pfilter_profit_prof"), -1 : shorter("pfilter_profit_loss")}, shorter("pfilter_profit"), shorter("pfilter_profit_box")) self.time_distance = hiding_time_distance_range_control({"chbt" : shorter("pfilter_timerange_lower"), "box" : shorter("pfilter_timerange_lower_box"), "day" : shorter("pfilter_timerange_lower_day"), "hour" : shorter("pfilter_timerange_lower_hour"), "min" : shorter("pfilter_timerange_lower_min")}, {"chbt" : shorter("pfilter_timerange_upper"), "box" : shorter("pfilter_timerange_upper_box"), "day" : shorter("pfilter_timerange_upper_day"), "hour" : shorter("pfilter_timerange_upper_hour"), "min" : shorter("pfilter_timerange_upper_min")}, [shorter("pfilter_timerange_lower_superbox"), shorter("pfilter_timerange_upper_superbox")], shorter("pfilter_timerange")) self.account_current = select_control({"current" : shorter("pfilter_account_current"), "all" : shorter("pfilter_account_all"), "select" : shorter("pfilter_account_select")}) self.check_accounts = check_control(shorter("pfilter_accounts_view"), "", [['id', int], (u'Счет', gtk.CellRendererText())], reverse_button = shorter("pfilter_account_reverse"), select_button = shorter("pfilter_account_set"), deselect_button = shorter("pfilter_account_unset")) self.hiders = [] self.hiders.append(hide_control(shorter("pfilter_account_select"), [shorter("pfilter_accounts_box")])) self.check_instruments = check_control(shorter("pfilter_instruments"), "", [['id', int], (u'Инструмент', gtk.CellRendererText())], reverse_button = shorter("pfilter_instrument_reverse"), select_button = shorter("pfilter_instrument_set"), deselect_button = shorter("pfilter_instrument_unset"))