feat(rcf): improve UI
This commit is contained in:
120
net_ui.py
120
net_ui.py
@ -3,21 +3,22 @@ from . import net_components
|
||||
from . import net_operators
|
||||
|
||||
|
||||
class SessionPanel(bpy.types.Panel):
|
||||
class SessionSettingsPanel(bpy.types.Panel):
|
||||
"""Creates a Panel in the scene context of the properties editor"""
|
||||
bl_label = "bl network"
|
||||
bl_idname = "SCENE_PT_layout"
|
||||
bl_label = "NET settings"
|
||||
bl_idname = "SCENE_PT_SessionSettings"
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
bl_context = "scene"
|
||||
|
||||
def draw_header(self, context):
|
||||
net_settings = context.scene.session_settings
|
||||
pass
|
||||
# net_settings = context.scene.session_settings
|
||||
|
||||
if net_settings.is_running:
|
||||
self.layout.label(text="",icon='HIDE_OFF')
|
||||
else:
|
||||
self.layout.label(text="",icon='HIDE_ON')
|
||||
# if net_settings.is_running:
|
||||
# self.layout.label(text="",icon='HIDE_OFF')
|
||||
# else:
|
||||
# self.layout.label(text="",icon='HIDE_ON')
|
||||
# self.layout.label(text="Offline")
|
||||
|
||||
def draw(self, context):
|
||||
@ -31,26 +32,11 @@ class SessionPanel(bpy.types.Panel):
|
||||
if net_operators.client:
|
||||
row.label(text="Net frequency:")
|
||||
row.prop(net_settings,"update_frequency",text="")
|
||||
row = layout.row(align=True)
|
||||
row.prop(net_settings,"buffer", text="")
|
||||
row.operator("session.add_prop", text="",icon="ADD").property_path = net_settings.buffer
|
||||
row = layout.row()
|
||||
# Debug area
|
||||
|
||||
|
||||
row = layout.row()
|
||||
area_msg = row.box()
|
||||
if len(net_operators.client.property_map) > 0:
|
||||
for key,values in net_operators.client.property_map.items():
|
||||
item_box = area_msg.box()
|
||||
detail_item_box = item_box.row()
|
||||
# detail_item_box = item_box.row()
|
||||
detail_item_box.label(text="{} ({}) ".format(key, values.mtype, values.id.decode()))
|
||||
detail_item_box.operator("session.remove_prop",text="",icon="X").property_path = key
|
||||
else:
|
||||
area_msg.label(text="Empty")
|
||||
|
||||
row = layout.row()
|
||||
row.operator("session.stop")
|
||||
row.operator("session.stop", text="exit session")
|
||||
|
||||
else:
|
||||
row = layout.row()
|
||||
@ -61,10 +47,88 @@ class SessionPanel(bpy.types.Panel):
|
||||
row.operator("session.create")
|
||||
|
||||
row = layout.row()
|
||||
# row.operator("session.draw")
|
||||
# row.operator("session.update_client")
|
||||
|
||||
class SessionUsersPanel(bpy.types.Panel):
|
||||
"""Creates a Panel in the scene context of the properties editor"""
|
||||
bl_label = "NET users"
|
||||
bl_idname = "SCENE_PT_SessionUsers"
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
bl_context = "scene"
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
return net_operators.client
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
net_settings = context.scene.session_settings
|
||||
scene = context.scene
|
||||
# Create a simple row.
|
||||
row = layout.row()
|
||||
|
||||
if net_operators.client:
|
||||
if len(net_operators.client.property_map) > 0:
|
||||
for key,values in net_operators.client.property_map.items():
|
||||
if 'client' in key:
|
||||
info = ""
|
||||
item_box = row.box()
|
||||
detail_item_box = item_box.row()
|
||||
|
||||
if values.id == net_operators.client.id:
|
||||
info = "(self)"
|
||||
# detail_item_box = item_box.row()
|
||||
detail_item_box.label(text="{} {}".format(values.id.decode(),info))
|
||||
row = layout.row()
|
||||
else:
|
||||
row.label(text="Empty")
|
||||
|
||||
row = layout.row()
|
||||
|
||||
|
||||
|
||||
class SessionPropertiesPanel(bpy.types.Panel):
|
||||
"""Creates a Panel in the scene context of the properties editor"""
|
||||
bl_label = "NET properties"
|
||||
bl_idname = "SCENE_PT_layout"
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
bl_context = "scene"
|
||||
|
||||
@classmethod
|
||||
def poll(cls, context):
|
||||
return net_operators.client
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
net_settings = context.scene.session_settings
|
||||
scene = context.scene
|
||||
# Create a simple row.
|
||||
row = layout.row()
|
||||
|
||||
if net_operators.client:
|
||||
row = layout.row(align=True)
|
||||
row.prop(net_settings,"buffer", text="")
|
||||
row.operator("session.add_prop", text="",icon="ADD").property_path = net_settings.buffer
|
||||
row = layout.row()
|
||||
# Property area
|
||||
area_msg = row.box()
|
||||
if len(net_operators.client.property_map) > 0:
|
||||
for key,values in net_operators.client.property_map.items():
|
||||
item_box = area_msg.box()
|
||||
detail_item_box = item_box.row()
|
||||
# detail_item_box = item_box.row()
|
||||
detail_item_box.label(text="{} ({}) ".format(key, values.mtype, values.id.decode()))
|
||||
detail_item_box.operator("session.remove_prop",text="",icon="X").property_path = key
|
||||
else:
|
||||
area_msg.label(text="Empty")
|
||||
|
||||
classes = (
|
||||
SessionPanel,
|
||||
SessionSettingsPanel,
|
||||
SessionUsersPanel,
|
||||
SessionPropertiesPanel,
|
||||
)
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user