def add_widget(self, type, parent_widget): parentframe = parent_widget.get_parent() parentframe.remove(parent_widget) if type == 'add_fan': widget = phat.phat_hfan_slider_new_with_range(1.0, 20.0, 200000.0, 0.1) elif type == 'add_slider': widget = phat.phat_slider_button_new_with_range(1.0, 20.0, 200000.0, 0.1, 2) elif type == 'add_knob': widget = phat.phat_knob_new_with_range(10.0, 20.0, 200000.0, 0.1) elif type == 'add_pad': widget = phat.Pad() widget.connect('value-changed', self.osc_send_cb) widget.connect('button_press_event', self.edit_popup_cb) widget.label = gtk.Label("Default") parentframe.set_label_widget(widget.label) parentframe.add(widget) parentframe.show_all()
def add_widget(self, type, parent_widget): parentframe = parent_widget.get_parent() parentframe.remove(parent_widget) if type == 'add_fan': widget = phat.phat_hfan_slider_new_with_range( 1.0, 20.0, 200000.0, 0.1) elif type == 'add_slider': widget = phat.phat_slider_button_new_with_range( 1.0, 20.0, 200000.0, 0.1, 2) elif type == 'add_knob': widget = phat.phat_knob_new_with_range(10.0, 20.0, 200000.0, 0.1) elif type == 'add_pad': widget = phat.Pad() widget.connect('value-changed', self.osc_send_cb) widget.connect('button_press_event', self.edit_popup_cb) widget.label = gtk.Label("Default") parentframe.set_label_widget(widget.label) parentframe.add(widget) parentframe.show_all()
def open_rec(self, node, parent_widget): #if it's a grouping element if node.nodeName == 'hsplit' or node.nodeName == 'vsplit': if node.nodeName == 'vsplit': box = gtk.HBox(True) if node.nodeName == 'hsplit': box = gtk.VBox(True) frame1 = gtk.Frame() frame1.set_shadow_type(gtk.SHADOW_NONE) box.pack_start(frame1) frame2 = gtk.Frame() frame2.set_shadow_type(gtk.SHADOW_NONE) box.pack_start(frame2) #add the new box to the parent of placeholder parent_widget.add(box) #and removet he place holder parent_widget.show_all() #recure left self.open_rec(node.childNodes[0], frame1) #recure right self.open_rec(node.childNodes[1], frame2) #otherwise it's a widget, but don't use an else because anything else could be in here. if node.nodeName == 'widget': name = node.getElementsByTagName('name')[0].firstChild.data if name == 'GtkButton': button1 = gtk.Button() button1.connect('button_press_event', self.popup_cb) button1.set_relief(gtk.RELIEF_HALF) parent_widget.add(button1) parent_widget.show_all() return elif name == 'PhatHFanSlider': widget = phat.phat_hfan_slider_new_with_range(float(node.getElementsByTagName('value')[0].firstChild.data), float(node.getElementsByTagName('min')[0].firstChild.data), float(node.getElementsByTagName('max')[0].firstChild.data), 0.1) widget.port = [0] widget.osc_path = [0] widget.split_path = [0] widget.sub_index = [0] self.split_path(widget, node.getElementsByTagName('osc_path')[0].firstChild.data, 0) widget.port[0] = int(node.getElementsByTagName('port')[0].firstChild.data) widget.label = gtk.Label(node.getElementsByTagName('label')[0].firstChild.data) parent_widget.set_label_widget(widget.label) widget.set_log(interpret_bool(node.getElementsByTagName('is_log')[0].firstChild.data)) widget.set_value(float(node.getElementsByTagName('value')[0].firstChild.data)) elif name == 'PhatSliderButton': widget = phat.phat_slider_button_new_with_range(float(node.getElementsByTagName('value')[0].firstChild.data), float(node.getElementsByTagName('min')[0].firstChild.data), float(node.getElementsByTagName('max')[0].firstChild.data), 0.1, 2) widget.port = [0] widget.osc_path = [0] widget.split_path = [0] widget.sub_index = [0] self.split_path(widget, node.getElementsByTagName('osc_path')[0].firstChild.data, 0) widget.port[0] = int(node.getElementsByTagName('port')[0].firstChild.data) widget.label = gtk.Label(node.getElementsByTagName('label')[0].firstChild.data) parent_widget.set_label_widget(widget.label) widget.set_value(float(node.getElementsByTagName('value')[0].firstChild.data)) elif name == 'PhatKnob': widget = phat.phat_knob_new_with_range(float(node.getElementsByTagName('value')[0].firstChild.data), float(node.getElementsByTagName('min')[0].firstChild.data), float(node.getElementsByTagName('max')[0].firstChild.data), 0.1) widget.port = [0] widget.osc_path = [0] widget.split_path = [0] widget.sub_index = [0] self.split_path(widget, node.getElementsByTagName('osc_path')[0].firstChild.data, 0) widget.port[0] = int(node.getElementsByTagName('port')[0].firstChild.data) widget.label = gtk.Label(node.getElementsByTagName('label')[0].firstChild.data) widget.set_log(interpret_bool(node.getElementsByTagName('is_log')[0].firstChild.data)) parent_widget.set_label_widget(widget.label) widget.set_value(float(node.getElementsByTagName('value')[0].firstChild.data)) elif name == 'PhatPad': widget = phat.Pad() widget.port = range(5) widget.osc_path = range(5) widget.split_path = range(5) widget.sub_index = range(5) widget.label = gtk.Label(node.getElementsByTagName('label')[0].firstChild.data) parent_widget.set_label_widget(widget.label) radio_setters = [widget.set_x_log, widget.set_y_log, widget.set_xtilt_log, widget.set_ytilt_log, widget.set_pressure_log] adjusts = [widget.get_x(), widget.get_y(), widget.get_xtilt(), widget.get_ytilt(), widget.get_pressure()] i = 0 for child in node.getElementsByTagName('osc_path'): if(child.firstChild != None): self.split_path(widget, child.firstChild.data, i) #print 'in osc path', child.firstChild.data else: self.split_path(widget, '', i) i+=1 i = 0 for child in node.getElementsByTagName('port'): if(child.firstChild != None): widget.port[i] = int(child.firstChild.data) #print 'in port', child.firstChild.data else: widget.port[i] = 0 i+=1 i = 0 for child in node.getElementsByTagName('is_log'): if(child.firstChild != None): apply(radio_setters[i], [interpret_bool(child.firstChild.data)]) i+=1 i = 0 for child in node.getElementsByTagName('min'): if(child.firstChild != None): setattr(adjusts[i], 'lower', float(child.firstChild.data)) i+=1 i = 0 for child in node.getElementsByTagName('max'): if(child.firstChild != None): setattr(adjusts[i], 'upper', float(child.firstChild.data)) i+=1 widget.connect('value-changed', self.osc_send_cb) widget.connect('button_press_event', self.edit_popup_cb) parent_widget.add(widget) parent_widget.show_all()
def open_rec(self, node, parent_widget): #if it's a grouping element if node.nodeName == 'hsplit' or node.nodeName == 'vsplit': if node.nodeName == 'vsplit': box = gtk.HBox(True) if node.nodeName == 'hsplit': box = gtk.VBox(True) frame1 = gtk.Frame() frame1.set_shadow_type(gtk.SHADOW_NONE) box.pack_start(frame1) frame2 = gtk.Frame() frame2.set_shadow_type(gtk.SHADOW_NONE) box.pack_start(frame2) #add the new box to the parent of placeholder parent_widget.add(box) #and removet he place holder parent_widget.show_all() #recure left self.open_rec(node.childNodes[0], frame1) #recure right self.open_rec(node.childNodes[1], frame2) #otherwise it's a widget, but don't use an else because anything else could be in here. if node.nodeName == 'widget': name = node.getElementsByTagName('name')[0].firstChild.data if name == 'GtkButton': button1 = gtk.Button() button1.connect('button_press_event', self.popup_cb) button1.set_relief(gtk.RELIEF_HALF) parent_widget.add(button1) parent_widget.show_all() return elif name == 'PhatHFanSlider': widget = phat.phat_hfan_slider_new_with_range( float( node.getElementsByTagName('value')[0].firstChild.data), float(node.getElementsByTagName('min')[0].firstChild.data), float(node.getElementsByTagName('max')[0].firstChild.data), 0.1) widget.port = [0] widget.osc_path = [0] widget.split_path = [0] widget.sub_index = [0] self.split_path( widget, node.getElementsByTagName('osc_path')[0].firstChild.data, 0) widget.port[0] = int( node.getElementsByTagName('port')[0].firstChild.data) widget.label = gtk.Label( node.getElementsByTagName('label')[0].firstChild.data) parent_widget.set_label_widget(widget.label) widget.set_log( interpret_bool( node.getElementsByTagName('is_log') [0].firstChild.data)) widget.set_value( float( node.getElementsByTagName('value')[0].firstChild.data)) elif name == 'PhatSliderButton': widget = phat.phat_slider_button_new_with_range( float( node.getElementsByTagName('value')[0].firstChild.data), float(node.getElementsByTagName('min')[0].firstChild.data), float(node.getElementsByTagName('max')[0].firstChild.data), 0.1, 2) widget.port = [0] widget.osc_path = [0] widget.split_path = [0] widget.sub_index = [0] self.split_path( widget, node.getElementsByTagName('osc_path')[0].firstChild.data, 0) widget.port[0] = int( node.getElementsByTagName('port')[0].firstChild.data) widget.label = gtk.Label( node.getElementsByTagName('label')[0].firstChild.data) parent_widget.set_label_widget(widget.label) widget.set_value( float( node.getElementsByTagName('value')[0].firstChild.data)) elif name == 'PhatKnob': widget = phat.phat_knob_new_with_range( float( node.getElementsByTagName('value')[0].firstChild.data), float(node.getElementsByTagName('min')[0].firstChild.data), float(node.getElementsByTagName('max')[0].firstChild.data), 0.1) widget.port = [0] widget.osc_path = [0] widget.split_path = [0] widget.sub_index = [0] self.split_path( widget, node.getElementsByTagName('osc_path')[0].firstChild.data, 0) widget.port[0] = int( node.getElementsByTagName('port')[0].firstChild.data) widget.label = gtk.Label( node.getElementsByTagName('label')[0].firstChild.data) widget.set_log( interpret_bool( node.getElementsByTagName('is_log') [0].firstChild.data)) parent_widget.set_label_widget(widget.label) widget.set_value( float( node.getElementsByTagName('value')[0].firstChild.data)) elif name == 'PhatPad': widget = phat.Pad() widget.port = range(5) widget.osc_path = range(5) widget.split_path = range(5) widget.sub_index = range(5) widget.label = gtk.Label( node.getElementsByTagName('label')[0].firstChild.data) parent_widget.set_label_widget(widget.label) radio_setters = [ widget.set_x_log, widget.set_y_log, widget.set_xtilt_log, widget.set_ytilt_log, widget.set_pressure_log ] adjusts = [ widget.get_x(), widget.get_y(), widget.get_xtilt(), widget.get_ytilt(), widget.get_pressure() ] i = 0 for child in node.getElementsByTagName('osc_path'): if (child.firstChild != None): self.split_path(widget, child.firstChild.data, i) #print 'in osc path', child.firstChild.data else: self.split_path(widget, '', i) i += 1 i = 0 for child in node.getElementsByTagName('port'): if (child.firstChild != None): widget.port[i] = int(child.firstChild.data) #print 'in port', child.firstChild.data else: widget.port[i] = 0 i += 1 i = 0 for child in node.getElementsByTagName('is_log'): if (child.firstChild != None): apply(radio_setters[i], [interpret_bool(child.firstChild.data)]) i += 1 i = 0 for child in node.getElementsByTagName('min'): if (child.firstChild != None): setattr(adjusts[i], 'lower', float(child.firstChild.data)) i += 1 i = 0 for child in node.getElementsByTagName('max'): if (child.firstChild != None): setattr(adjusts[i], 'upper', float(child.firstChild.data)) i += 1 widget.connect('value-changed', self.osc_send_cb) widget.connect('button_press_event', self.edit_popup_cb) parent_widget.add(widget) parent_widget.show_all()