mirror of
https://github.com/UberGames/GtkRadiant.git
synced 2024-11-29 23:22:23 +00:00
- Updated help menu web links (removed map-center.com, added ETB documentation) (Shaderman)
- Added check for existing worldspawn if a new one should be added with the entity menu (Shaderman) - Fixed Entity -> Ungroup (Topsun) - Fixed hotkey collision ALT+M (filter botclip/Modify menu). New Modify shortcut = ALT+O (Shaderman) - Updated Window Layout images (Shaderman) - Fixed (TODO) XYWindow: save show-workzone option (Shaderman) - Fixed (TODO) Toolbar: add shortcut to tooltips for toolbar buttons (Shaderman) - Fixed (TODO) GUI: detachable submenus (Shaderman) git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@117 8a3a26a2-13c4-0310-b231-cf6edde360e5
This commit is contained in:
parent
bd1602cf73
commit
bc832533c3
11 changed files with 108 additions and 46 deletions
11
CHANGES
11
CHANGES
|
@ -1,6 +1,17 @@
|
||||||
This is the changelog for developers, != changelog for the end user
|
This is the changelog for developers, != changelog for the end user
|
||||||
that we distribute with the binaries. (see changelog)
|
that we distribute with the binaries. (see changelog)
|
||||||
|
|
||||||
|
12/10/2006
|
||||||
|
namespace
|
||||||
|
- Updated help menu web links (removed map-center.com, added ETB documentation) (Shaderman)
|
||||||
|
- Added check for existing worldspawn if a new one should be added with the entity menu (Shaderman)
|
||||||
|
- Fixed Entity -> Ungroup (Topsun)
|
||||||
|
- Fixed hotkey collision ALT+M (filter botclip/Modify menu). New Modify shortcut = ALT+O (Shaderman)
|
||||||
|
- Updated Window Layout images (Shaderman)
|
||||||
|
- Fixed (TODO) XYWindow: save show-workzone option (Shaderman)
|
||||||
|
- Fixed (TODO) Toolbar: add shortcut to tooltips for toolbar buttons (Shaderman)
|
||||||
|
- Fixed (TODO) GUI: detachable submenus (Shaderman)
|
||||||
|
|
||||||
09/10/2006
|
09/10/2006
|
||||||
namespace
|
namespace
|
||||||
- Added option to toggle the camera window stats on/off (Shaderman)
|
- Added option to toggle the camera window stats on/off (Shaderman)
|
||||||
|
|
4
TODO
4
TODO
|
@ -56,7 +56,6 @@ Shaders: handle doom3 materials with multiple bumpmaps stage - use first stage,
|
||||||
Brush: warn when a brush is dragged into a configuration with <0 volume
|
Brush: warn when a brush is dragged into a configuration with <0 volume
|
||||||
Textures: add option to give new brushes a specific texture instead of the last selected.
|
Textures: add option to give new brushes a specific texture instead of the last selected.
|
||||||
? QE-tool: click anywhere on xy view to drag entity instead of requiring clicking directly on entity.
|
? QE-tool: click anywhere on xy view to drag entity instead of requiring clicking directly on entity.
|
||||||
Camera: option to toggle stats on/off.
|
|
||||||
UserDocs: how to use multi-vertex selection - replaces vertex-edit-splits-faces option:
|
UserDocs: how to use multi-vertex selection - replaces vertex-edit-splits-faces option:
|
||||||
UserDocs: how to use parent-selection:
|
UserDocs: how to use parent-selection:
|
||||||
Parent-selection works like Maya: it allows you to 'reparent' brushes
|
Parent-selection works like Maya: it allows you to 'reparent' brushes
|
||||||
|
@ -66,7 +65,6 @@ Textures: add anisotropic filtering.
|
||||||
Preferences: allow preference settings to be shared across games.
|
Preferences: allow preference settings to be shared across games.
|
||||||
Preferences: add colour 'theme' files using prefs format.
|
Preferences: add colour 'theme' files using prefs format.
|
||||||
Preferences: sensible default size for prefs window.
|
Preferences: sensible default size for prefs window.
|
||||||
GUI: detachable submenus.
|
|
||||||
Doom3: add model browser.
|
Doom3: add model browser.
|
||||||
Doom3: s_diversity light key.
|
Doom3: s_diversity light key.
|
||||||
HalfLife: enable HL-mode on linux/osx.
|
HalfLife: enable HL-mode on linux/osx.
|
||||||
|
@ -94,7 +92,6 @@ Selection: add rotate increment for rotate manipulator.
|
||||||
Selection: visibly distinguish between entity and brush selections
|
Selection: visibly distinguish between entity and brush selections
|
||||||
Selection: need 'add to selection' and 'subtract from selection' modifiers
|
Selection: need 'add to selection' and 'subtract from selection' modifiers
|
||||||
Selection: Finish scale manipulator.
|
Selection: Finish scale manipulator.
|
||||||
Toolbar: add shortcut to tooltips for toolbar buttons
|
|
||||||
FaceCopy/PasteTexture: Make face-copy/paste-texture shortcuts customisable.
|
FaceCopy/PasteTexture: Make face-copy/paste-texture shortcuts customisable.
|
||||||
Manual: add documentation about search paths for .ent/.def/.fgd, shaders etc for each game.
|
Manual: add documentation about search paths for .ent/.def/.fgd, shaders etc for each game.
|
||||||
Halflife: add support for cstrike fgd.
|
Halflife: add support for cstrike fgd.
|
||||||
|
@ -119,7 +116,6 @@ Patch: fix bobtoolz merge-patches feature
|
||||||
Patch: fix insert/remove rows/cols indicated by current selected patch vertices.
|
Patch: fix insert/remove rows/cols indicated by current selected patch vertices.
|
||||||
Autosave/Snapshots: Add support for multi-file maps.
|
Autosave/Snapshots: Add support for multi-file maps.
|
||||||
Quake2: Q2 hint transparency support
|
Quake2: Q2 hint transparency support
|
||||||
XYWindow: save show-workzone option
|
|
||||||
Shortcuts: make shortcut list editable within radiant.
|
Shortcuts: make shortcut list editable within radiant.
|
||||||
Shortcuts: convert shortcuts.ini to xml.
|
Shortcuts: convert shortcuts.ini to xml.
|
||||||
Shortcuts: warn when duplicate shortcuts are registered
|
Shortcuts: warn when duplicate shortcuts are registered
|
||||||
|
|
|
@ -1397,6 +1397,8 @@ void Brush_constructMenu(GtkMenu* menu)
|
||||||
menu_separator (menu);
|
menu_separator (menu);
|
||||||
{
|
{
|
||||||
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "CSG");
|
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "CSG");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Make _Hollow", "CSGHollow");
|
create_menu_item_with_mnemonic(menu_in_menu, "Make _Hollow", "CSGHollow");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "CSG _Subtract", "CSGSubtract");
|
create_menu_item_with_mnemonic(menu_in_menu, "CSG _Subtract", "CSGSubtract");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "CSG _Merge", "CSGMerge");
|
create_menu_item_with_mnemonic(menu_in_menu, "CSG _Merge", "CSGMerge");
|
||||||
|
@ -1404,6 +1406,8 @@ void Brush_constructMenu(GtkMenu* menu)
|
||||||
menu_separator(menu);
|
menu_separator(menu);
|
||||||
{
|
{
|
||||||
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Clipper");
|
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Clipper");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
|
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Clip selection", "ClipSelected");
|
create_menu_item_with_mnemonic(menu_in_menu, "Clip selection", "ClipSelected");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Split selection", "SplitSelected");
|
create_menu_item_with_mnemonic(menu_in_menu, "Split selection", "SplitSelected");
|
||||||
|
|
|
@ -1792,7 +1792,7 @@ void Camera_ToggleFarClip()
|
||||||
|
|
||||||
void CamWnd_constructToolbar(GtkToolbar* toolbar)
|
void CamWnd_constructToolbar(GtkToolbar* toolbar)
|
||||||
{
|
{
|
||||||
toolbar_append_toggle_button(toolbar, "Cubic clip the camera view", "view_cubicclipping.bmp", "ToggleCubicClip");
|
toolbar_append_toggle_button(toolbar, "Cubic clip the camera view (\\)", "view_cubicclipping.bmp", "ToggleCubicClip");
|
||||||
}
|
}
|
||||||
|
|
||||||
void CamWnd_registerShortcuts()
|
void CamWnd_registerShortcuts()
|
||||||
|
|
|
@ -130,35 +130,29 @@ void Scene_EntitySetClassname_Selected(const char* classname)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class EntityUngroupVisitor : public SelectionSystem::Visitor
|
|
||||||
{
|
|
||||||
const scene::Path& m_parent;
|
|
||||||
public:
|
|
||||||
EntityUngroupVisitor(const scene::Path& parent) : m_parent(parent)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
void visit(scene::Instance& instance) const
|
|
||||||
{
|
|
||||||
if(Node_getEntity(instance.path().top()) != 0
|
|
||||||
&& node_is_group(instance.path().top()))
|
|
||||||
{
|
|
||||||
if(m_parent.top().get_pointer() != instance.path().top().get_pointer())
|
|
||||||
{
|
|
||||||
parentBrushes(instance.path().top(), m_parent.top());
|
|
||||||
Path_deleteTop(instance.path());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
void Entity_ungroupSelected()
|
void Entity_ungroupSelected()
|
||||||
{
|
{
|
||||||
|
if (GlobalSelectionSystem().countSelected() < 1) return;
|
||||||
|
|
||||||
UndoableCommand undo("ungroupSelectedEntities");
|
UndoableCommand undo("ungroupSelectedEntities");
|
||||||
|
|
||||||
scene::Path world_path(makeReference(GlobalSceneGraph().root()));
|
scene::Path world_path(makeReference(GlobalSceneGraph().root()));
|
||||||
world_path.push(makeReference(Map_FindOrInsertWorldspawn(g_map)));
|
world_path.push(makeReference(Map_FindOrInsertWorldspawn(g_map)));
|
||||||
|
|
||||||
GlobalSelectionSystem().foreachSelected(EntityUngroupVisitor(world_path));
|
scene::Instance &instance = GlobalSelectionSystem().ultimateSelected();
|
||||||
|
scene::Path path = instance.path();
|
||||||
|
|
||||||
|
if (!Node_isEntity(path.top())) path.pop();
|
||||||
|
|
||||||
|
if(Node_getEntity(path.top()) != 0
|
||||||
|
&& node_is_group(path.top()))
|
||||||
|
{
|
||||||
|
if(world_path.top().get_pointer() != path.top().get_pointer())
|
||||||
|
{
|
||||||
|
parentBrushes(path.top(), world_path.top());
|
||||||
|
Path_deleteTop(path);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,8 @@ void process_xlink(const char* filename, const char *menu_name, const char *base
|
||||||
globalOutputStream() << "Processing .xlink file '" << filename << "'\n";
|
globalOutputStream() << "Processing .xlink file '" << filename << "'\n";
|
||||||
// create sub menu
|
// create sub menu
|
||||||
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic(menu, menu_name);
|
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic(menu, menu_name);
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
// start walking the nodes, find the 'links' one
|
// start walking the nodes, find the 'links' one
|
||||||
xmlNodePtr pNode = pDoc->children;
|
xmlNodePtr pNode = pDoc->children;
|
||||||
while (pNode && strcmp((const char*)pNode->name, "links"))
|
while (pNode && strcmp((const char*)pNode->name, "links"))
|
||||||
|
|
|
@ -920,8 +920,12 @@ GtkMenuItem* create_colours_menu()
|
||||||
{
|
{
|
||||||
GtkMenuItem* colours_menu_item = new_sub_menu_item_with_mnemonic("Colors");
|
GtkMenuItem* colours_menu_item = new_sub_menu_item_with_mnemonic("Colors");
|
||||||
GtkMenu* menu_in_menu = GTK_MENU(gtk_menu_item_get_submenu(colours_menu_item));
|
GtkMenu* menu_in_menu = GTK_MENU(gtk_menu_item_get_submenu(colours_menu_item));
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
|
|
||||||
GtkMenu* menu_3 = create_sub_menu_with_mnemonic(menu_in_menu, "Themes");
|
GtkMenu* menu_3 = create_sub_menu_with_mnemonic(menu_in_menu, "Themes");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_3);
|
||||||
|
|
||||||
create_menu_item_with_mnemonic(menu_3, "QE4 Original", "ColorSchemeOriginal");
|
create_menu_item_with_mnemonic(menu_3, "QE4 Original", "ColorSchemeOriginal");
|
||||||
create_menu_item_with_mnemonic(menu_3, "Q3Radiant Original", "ColorSchemeQER");
|
create_menu_item_with_mnemonic(menu_3, "Q3Radiant Original", "ColorSchemeQER");
|
||||||
|
@ -1984,6 +1988,8 @@ GtkMenuItem* create_edit_menu()
|
||||||
create_menu_item_with_mnemonic(menu, "Select _touching", "SelectTouching");
|
create_menu_item_with_mnemonic(menu, "Select _touching", "SelectTouching");
|
||||||
|
|
||||||
GtkMenu* convert_menu = create_sub_menu_with_mnemonic(menu, "E_xpand Selection");
|
GtkMenu* convert_menu = create_sub_menu_with_mnemonic(menu, "E_xpand Selection");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (convert_menu);
|
||||||
create_menu_item_with_mnemonic(convert_menu, "To Whole _Entities", "ExpandSelectionToEntities");
|
create_menu_item_with_mnemonic(convert_menu, "To Whole _Entities", "ExpandSelectionToEntities");
|
||||||
|
|
||||||
menu_separator(menu);
|
menu_separator(menu);
|
||||||
|
@ -2046,6 +2052,8 @@ GtkMenuItem* create_view_menu(MainFrame::EViewStyle style)
|
||||||
menu_separator(menu);
|
menu_separator(menu);
|
||||||
{
|
{
|
||||||
GtkMenu* camera_menu = create_sub_menu_with_mnemonic (menu, "Camera");
|
GtkMenu* camera_menu = create_sub_menu_with_mnemonic (menu, "Camera");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (camera_menu);
|
||||||
create_menu_item_with_mnemonic(camera_menu, "_Center", "CenterView");
|
create_menu_item_with_mnemonic(camera_menu, "_Center", "CenterView");
|
||||||
create_menu_item_with_mnemonic(camera_menu, "_Up Floor", "UpFloor");
|
create_menu_item_with_mnemonic(camera_menu, "_Up Floor", "UpFloor");
|
||||||
create_menu_item_with_mnemonic(camera_menu, "_Down Floor", "DownFloor");
|
create_menu_item_with_mnemonic(camera_menu, "_Down Floor", "DownFloor");
|
||||||
|
@ -2062,6 +2070,8 @@ GtkMenuItem* create_view_menu(MainFrame::EViewStyle style)
|
||||||
menu_separator(menu);
|
menu_separator(menu);
|
||||||
{
|
{
|
||||||
GtkMenu* orthographic_menu = create_sub_menu_with_mnemonic(menu, "Orthographic");
|
GtkMenu* orthographic_menu = create_sub_menu_with_mnemonic(menu, "Orthographic");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (orthographic_menu);
|
||||||
if(style == MainFrame::eRegular || style == MainFrame::eRegularLeft || style == MainFrame::eFloating)
|
if(style == MainFrame::eRegular || style == MainFrame::eRegularLeft || style == MainFrame::eFloating)
|
||||||
{
|
{
|
||||||
create_menu_item_with_mnemonic(orthographic_menu, "_Next (XY, YZ, XY)", "NextView");
|
create_menu_item_with_mnemonic(orthographic_menu, "_Next (XY, YZ, XY)", "NextView");
|
||||||
|
@ -2080,6 +2090,8 @@ GtkMenuItem* create_view_menu(MainFrame::EViewStyle style)
|
||||||
|
|
||||||
{
|
{
|
||||||
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Show");
|
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Show");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
create_check_menu_item_with_mnemonic(menu_in_menu, "Show _Angles", "ShowAngles");
|
create_check_menu_item_with_mnemonic(menu_in_menu, "Show _Angles", "ShowAngles");
|
||||||
create_check_menu_item_with_mnemonic(menu_in_menu, "Show _Names", "ShowNames");
|
create_check_menu_item_with_mnemonic(menu_in_menu, "Show _Names", "ShowNames");
|
||||||
create_check_menu_item_with_mnemonic(menu_in_menu, "Show Blocks", "ShowBlocks");
|
create_check_menu_item_with_mnemonic(menu_in_menu, "Show Blocks", "ShowBlocks");
|
||||||
|
@ -2092,17 +2104,23 @@ GtkMenuItem* create_view_menu(MainFrame::EViewStyle style)
|
||||||
|
|
||||||
{
|
{
|
||||||
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Filter");
|
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Filter");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
Filters_constructMenu(menu_in_menu);
|
Filters_constructMenu(menu_in_menu);
|
||||||
}
|
}
|
||||||
menu_separator(menu);
|
menu_separator(menu);
|
||||||
{
|
{
|
||||||
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Hide/Show");
|
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Hide/Show");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Hide Selected", "HideSelected");
|
create_menu_item_with_mnemonic(menu_in_menu, "Hide Selected", "HideSelected");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Show Hidden", "ShowHidden");
|
create_menu_item_with_mnemonic(menu_in_menu, "Show Hidden", "ShowHidden");
|
||||||
}
|
}
|
||||||
menu_separator(menu);
|
menu_separator(menu);
|
||||||
{
|
{
|
||||||
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Region");
|
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Region");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "_Off", "RegionOff");
|
create_menu_item_with_mnemonic(menu_in_menu, "_Off", "RegionOff");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "_Set XY", "RegionSetXY");
|
create_menu_item_with_mnemonic(menu_in_menu, "_Set XY", "RegionSetXY");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Set _Brush", "RegionSetBrush");
|
create_menu_item_with_mnemonic(menu_in_menu, "Set _Brush", "RegionSetBrush");
|
||||||
|
@ -2124,13 +2142,15 @@ GtkMenuItem* create_view_menu(MainFrame::EViewStyle style)
|
||||||
GtkMenuItem* create_selection_menu()
|
GtkMenuItem* create_selection_menu()
|
||||||
{
|
{
|
||||||
// Selection menu
|
// Selection menu
|
||||||
GtkMenuItem* selection_menu_item = new_sub_menu_item_with_mnemonic("_Modify");
|
GtkMenuItem* selection_menu_item = new_sub_menu_item_with_mnemonic("M_odify");
|
||||||
GtkMenu* menu = GTK_MENU(gtk_menu_item_get_submenu(selection_menu_item));
|
GtkMenu* menu = GTK_MENU(gtk_menu_item_get_submenu(selection_menu_item));
|
||||||
if (g_Layout_enableDetachableMenus.m_value)
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
menu_tearoff (menu);
|
menu_tearoff (menu);
|
||||||
|
|
||||||
{
|
{
|
||||||
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Components");
|
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Components");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
create_check_menu_item_with_mnemonic(menu_in_menu, "_Edges", "DragEdges");
|
create_check_menu_item_with_mnemonic(menu_in_menu, "_Edges", "DragEdges");
|
||||||
create_check_menu_item_with_mnemonic(menu_in_menu, "_Vertices", "DragVertices");
|
create_check_menu_item_with_mnemonic(menu_in_menu, "_Vertices", "DragVertices");
|
||||||
create_check_menu_item_with_mnemonic(menu_in_menu, "_Faces", "DragFaces");
|
create_check_menu_item_with_mnemonic(menu_in_menu, "_Faces", "DragFaces");
|
||||||
|
@ -2140,6 +2160,8 @@ GtkMenuItem* create_selection_menu()
|
||||||
|
|
||||||
{
|
{
|
||||||
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic(menu, "Nudge");
|
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic(menu, "Nudge");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Nudge Left", "SelectNudgeLeft");
|
create_menu_item_with_mnemonic(menu_in_menu, "Nudge Left", "SelectNudgeLeft");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Nudge Right", "SelectNudgeRight");
|
create_menu_item_with_mnemonic(menu_in_menu, "Nudge Right", "SelectNudgeRight");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Nudge Up", "SelectNudgeUp");
|
create_menu_item_with_mnemonic(menu_in_menu, "Nudge Up", "SelectNudgeUp");
|
||||||
|
@ -2147,12 +2169,16 @@ GtkMenuItem* create_selection_menu()
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Rotate");
|
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Rotate");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Rotate X", "RotateSelectionX");
|
create_menu_item_with_mnemonic(menu_in_menu, "Rotate X", "RotateSelectionX");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Rotate Y", "RotateSelectionY");
|
create_menu_item_with_mnemonic(menu_in_menu, "Rotate Y", "RotateSelectionY");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Rotate Z", "RotateSelectionZ");
|
create_menu_item_with_mnemonic(menu_in_menu, "Rotate Z", "RotateSelectionZ");
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Flip");
|
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Flip");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Flip _X", "MirrorSelectionX");
|
create_menu_item_with_mnemonic(menu_in_menu, "Flip _X", "MirrorSelectionX");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Flip _Y", "MirrorSelectionY");
|
create_menu_item_with_mnemonic(menu_in_menu, "Flip _Y", "MirrorSelectionY");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Flip _Z", "MirrorSelectionZ");
|
create_menu_item_with_mnemonic(menu_in_menu, "Flip _Z", "MirrorSelectionZ");
|
||||||
|
@ -2387,8 +2413,8 @@ void register_shortcuts()
|
||||||
|
|
||||||
void File_constructToolbar(GtkToolbar* toolbar)
|
void File_constructToolbar(GtkToolbar* toolbar)
|
||||||
{
|
{
|
||||||
toolbar_append_button(toolbar, "Open an existing map", "file_open.bmp", "OpenMap");
|
toolbar_append_button(toolbar, "Open an existing map (CTRL + O)", "file_open.bmp", "OpenMap");
|
||||||
toolbar_append_button(toolbar, "Save the active map", "file_save.bmp", "SaveMap");
|
toolbar_append_button(toolbar, "Save the active map (CTRL + S)", "file_save.bmp", "SaveMap");
|
||||||
}
|
}
|
||||||
|
|
||||||
void RotateFlip_constructToolbar(GtkToolbar* toolbar)
|
void RotateFlip_constructToolbar(GtkToolbar* toolbar)
|
||||||
|
@ -2409,22 +2435,22 @@ void Select_constructToolbar(GtkToolbar* toolbar)
|
||||||
|
|
||||||
void CSG_constructToolbar(GtkToolbar* toolbar)
|
void CSG_constructToolbar(GtkToolbar* toolbar)
|
||||||
{
|
{
|
||||||
toolbar_append_button(toolbar, "CSG Subtract", "selection_csgsubtract.bmp", "CSGSubtract");
|
toolbar_append_button(toolbar, "CSG Subtract (SHIFT + U)", "selection_csgsubtract.bmp", "CSGSubtract");
|
||||||
toolbar_append_button(toolbar, "CSG Merge", "selection_csgmerge.bmp", "CSGMerge");
|
toolbar_append_button(toolbar, "CSG Merge (CTRL + U)", "selection_csgmerge.bmp", "CSGMerge");
|
||||||
toolbar_append_button(toolbar, "Hollow", "selection_makehollow.bmp", "CSGHollow");
|
toolbar_append_button(toolbar, "Hollow", "selection_makehollow.bmp", "CSGHollow");
|
||||||
}
|
}
|
||||||
|
|
||||||
void ComponentModes_constructToolbar(GtkToolbar* toolbar)
|
void ComponentModes_constructToolbar(GtkToolbar* toolbar)
|
||||||
{
|
{
|
||||||
toolbar_append_toggle_button(toolbar, "Select Vertices", "modify_vertices.bmp", "DragVertices");
|
toolbar_append_toggle_button(toolbar, "Select Vertices (V)", "modify_vertices.bmp", "DragVertices");
|
||||||
toolbar_append_toggle_button(toolbar, "Select Edges", "modify_edges.bmp", "DragEdges");
|
toolbar_append_toggle_button(toolbar, "Select Edges (E)", "modify_edges.bmp", "DragEdges");
|
||||||
toolbar_append_toggle_button(toolbar, "Select Faces", "modify_faces.bmp", "DragFaces");
|
toolbar_append_toggle_button(toolbar, "Select Faces (F)", "modify_faces.bmp", "DragFaces");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Clipper_constructToolbar(GtkToolbar* toolbar)
|
void Clipper_constructToolbar(GtkToolbar* toolbar)
|
||||||
{
|
{
|
||||||
|
|
||||||
toolbar_append_toggle_button(toolbar, "Clipper", "view_clipper.bmp", "ToggleClipper");
|
toolbar_append_toggle_button(toolbar, "Clipper (X)", "view_clipper.bmp", "ToggleClipper");
|
||||||
}
|
}
|
||||||
|
|
||||||
void XYWnd_constructToolbar(GtkToolbar* toolbar)
|
void XYWnd_constructToolbar(GtkToolbar* toolbar)
|
||||||
|
@ -2434,10 +2460,10 @@ void XYWnd_constructToolbar(GtkToolbar* toolbar)
|
||||||
|
|
||||||
void Manipulators_constructToolbar(GtkToolbar* toolbar)
|
void Manipulators_constructToolbar(GtkToolbar* toolbar)
|
||||||
{
|
{
|
||||||
toolbar_append_toggle_button(toolbar, "Translate", "select_mousetranslate.bmp", "MouseTranslate");
|
toolbar_append_toggle_button(toolbar, "Translate (W)", "select_mousetranslate.bmp", "MouseTranslate");
|
||||||
toolbar_append_toggle_button(toolbar, "Rotate", "select_mouserotate.bmp", "MouseRotate");
|
toolbar_append_toggle_button(toolbar, "Rotate (R)", "select_mouserotate.bmp", "MouseRotate");
|
||||||
toolbar_append_toggle_button(toolbar, "Scale", "select_mousescale.bmp", "MouseScale");
|
toolbar_append_toggle_button(toolbar, "Scale", "select_mousescale.bmp", "MouseScale");
|
||||||
toolbar_append_toggle_button(toolbar, "Resize", "select_mouseresize.bmp", "MouseDrag");
|
toolbar_append_toggle_button(toolbar, "Resize (Q)", "select_mouseresize.bmp", "MouseDrag");
|
||||||
|
|
||||||
Clipper_constructToolbar(toolbar);
|
Clipper_constructToolbar(toolbar);
|
||||||
}
|
}
|
||||||
|
@ -2492,13 +2518,13 @@ GtkToolbar* create_main_toolbar(MainFrame::EViewStyle style)
|
||||||
|
|
||||||
gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
|
gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
|
||||||
|
|
||||||
toolbar_append_toggle_button(toolbar, "Texture Lock", "texture_lock.bmp", "TogTexLock");
|
toolbar_append_toggle_button(toolbar, "Texture Lock (SHIFT +T)", "texture_lock.bmp", "TogTexLock");
|
||||||
|
|
||||||
gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
|
gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
|
||||||
|
|
||||||
GtkButton* g_view_entities_button = toolbar_append_button(toolbar, "Entities", "entities.bmp", "ToggleEntityInspector");
|
GtkButton* g_view_entities_button = toolbar_append_button(toolbar, "Entities (N)", "entities.bmp", "ToggleEntityInspector");
|
||||||
GtkButton* g_view_console_button = toolbar_append_button(toolbar, "Console", "console.bmp", "ToggleConsole");
|
GtkButton* g_view_console_button = toolbar_append_button(toolbar, "Console (O)", "console.bmp", "ToggleConsole");
|
||||||
GtkButton* g_view_textures_button = toolbar_append_button(toolbar, "Texture Browser", "texture_browser.bmp", "ToggleTextures");
|
GtkButton* g_view_textures_button = toolbar_append_button(toolbar, "Texture Browser (T)", "texture_browser.bmp", "ToggleTextures");
|
||||||
// TODO: call light inspector
|
// TODO: call light inspector
|
||||||
//GtkButton* g_view_lightinspector_button = toolbar_append_button(toolbar, "Light Inspector", "lightinspector.bmp", "ToggleLightInspector");
|
//GtkButton* g_view_lightinspector_button = toolbar_append_button(toolbar, "Light Inspector", "lightinspector.bmp", "ToggleLightInspector");
|
||||||
|
|
||||||
|
|
|
@ -732,7 +732,7 @@ void Patch_registerCommands()
|
||||||
|
|
||||||
void Patch_constructToolbar(GtkToolbar* toolbar)
|
void Patch_constructToolbar(GtkToolbar* toolbar)
|
||||||
{
|
{
|
||||||
toolbar_append_button(toolbar, "Put caps on the current patch", "curve_cap.bmp", "CapCurrentCurve");
|
toolbar_append_button(toolbar, "Put caps on the current patch (SHIFT + C)", "curve_cap.bmp", "CapCurrentCurve");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Patch_constructMenu(GtkMenu* menu)
|
void Patch_constructMenu(GtkMenu* menu)
|
||||||
|
@ -740,6 +740,8 @@ void Patch_constructMenu(GtkMenu* menu)
|
||||||
create_menu_item_with_mnemonic(menu, "Cylinder", "PatchCylinder");
|
create_menu_item_with_mnemonic(menu, "Cylinder", "PatchCylinder");
|
||||||
{
|
{
|
||||||
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "More Cylinders");
|
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "More Cylinders");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Dense Cylinder", "PatchDenseCylinder");
|
create_menu_item_with_mnemonic(menu_in_menu, "Dense Cylinder", "PatchDenseCylinder");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Very Dense Cylinder", "PatchVeryDenseCylinder");
|
create_menu_item_with_mnemonic(menu_in_menu, "Very Dense Cylinder", "PatchVeryDenseCylinder");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Square Cylinder", "PatchSquareCylinder");
|
create_menu_item_with_mnemonic(menu_in_menu, "Square Cylinder", "PatchSquareCylinder");
|
||||||
|
@ -749,6 +751,8 @@ void Patch_constructMenu(GtkMenu* menu)
|
||||||
create_menu_item_with_mnemonic(menu, "Bevel", "PatchBevel");
|
create_menu_item_with_mnemonic(menu, "Bevel", "PatchBevel");
|
||||||
{
|
{
|
||||||
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "More End caps, Bevels");
|
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "More End caps, Bevels");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Square Endcap", "PatchSquareBevel");
|
create_menu_item_with_mnemonic(menu_in_menu, "Square Endcap", "PatchSquareBevel");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Square Bevel", "PatchSquareEndcap");
|
create_menu_item_with_mnemonic(menu_in_menu, "Square Bevel", "PatchSquareEndcap");
|
||||||
}
|
}
|
||||||
|
@ -759,6 +763,8 @@ void Patch_constructMenu(GtkMenu* menu)
|
||||||
menu_separator (menu);
|
menu_separator (menu);
|
||||||
{
|
{
|
||||||
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Insert");
|
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Insert");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Insert (2) Columns", "PatchInsertInsertColumn");
|
create_menu_item_with_mnemonic(menu_in_menu, "Insert (2) Columns", "PatchInsertInsertColumn");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Add (2) Columns", "PatchInsertAddColumn");
|
create_menu_item_with_mnemonic(menu_in_menu, "Add (2) Columns", "PatchInsertAddColumn");
|
||||||
menu_separator (menu_in_menu);
|
menu_separator (menu_in_menu);
|
||||||
|
@ -767,6 +773,8 @@ void Patch_constructMenu(GtkMenu* menu)
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Delete");
|
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Delete");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "First (2) Columns", "PatchDeleteFirstColumn");
|
create_menu_item_with_mnemonic(menu_in_menu, "First (2) Columns", "PatchDeleteFirstColumn");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Last (2) Columns", "PatchDeleteLastColumn");
|
create_menu_item_with_mnemonic(menu_in_menu, "Last (2) Columns", "PatchDeleteLastColumn");
|
||||||
menu_separator (menu_in_menu);
|
menu_separator (menu_in_menu);
|
||||||
|
@ -776,8 +784,12 @@ void Patch_constructMenu(GtkMenu* menu)
|
||||||
menu_separator (menu);
|
menu_separator (menu);
|
||||||
{
|
{
|
||||||
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Matrix");
|
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Matrix");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Invert", "InvertCurve");
|
create_menu_item_with_mnemonic(menu_in_menu, "Invert", "InvertCurve");
|
||||||
GtkMenu* menu_3 = create_sub_menu_with_mnemonic (menu_in_menu, "Re-disperse");
|
GtkMenu* menu_3 = create_sub_menu_with_mnemonic (menu_in_menu, "Re-disperse");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_3);
|
||||||
create_menu_item_with_mnemonic(menu_3, "Rows", "RedisperseRows");
|
create_menu_item_with_mnemonic(menu_3, "Rows", "RedisperseRows");
|
||||||
create_menu_item_with_mnemonic(menu_3, "Columns", "RedisperseCols");
|
create_menu_item_with_mnemonic(menu_3, "Columns", "RedisperseCols");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Transpose", "MatrixTranspose");
|
create_menu_item_with_mnemonic(menu_in_menu, "Transpose", "MatrixTranspose");
|
||||||
|
@ -788,6 +800,8 @@ void Patch_constructMenu(GtkMenu* menu)
|
||||||
menu_separator (menu);
|
menu_separator (menu);
|
||||||
{
|
{
|
||||||
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Overlay");
|
GtkMenu* menu_in_menu = create_sub_menu_with_mnemonic (menu, "Overlay");
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (menu_in_menu);
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Set", "MakeOverlayPatch");
|
create_menu_item_with_mnemonic(menu_in_menu, "Set", "MakeOverlayPatch");
|
||||||
create_menu_item_with_mnemonic(menu_in_menu, "Clear", "ClearPatchOverlays");
|
create_menu_item_with_mnemonic(menu_in_menu, "Clear", "ClearPatchOverlays");
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,6 +59,8 @@ void PlugInMenu_Add(GtkMenu* plugin_menu, IPlugIn* pPlugIn)
|
||||||
if (nCount > 0)
|
if (nCount > 0)
|
||||||
{
|
{
|
||||||
menu = gtk_menu_new();
|
menu = gtk_menu_new();
|
||||||
|
if (g_Layout_enableDetachableMenus.m_value)
|
||||||
|
menu_tearoff (GTK_MENU(menu));
|
||||||
while (nCount > 0)
|
while (nCount > 0)
|
||||||
{
|
{
|
||||||
menuText = pPlugIn->getCommandTitle(--nCount);
|
menuText = pPlugIn->getCommandTitle(--nCount);
|
||||||
|
|
|
@ -1114,7 +1114,19 @@ void XYWnd::NewBrushDrag(int x, int y)
|
||||||
|
|
||||||
void entitycreate_activated(GtkWidget* item)
|
void entitycreate_activated(GtkWidget* item)
|
||||||
{
|
{
|
||||||
g_pParentWnd->ActiveXY()->OnEntityCreate(gtk_label_get_text(GTK_LABEL(GTK_BIN(item)->child)));
|
scene::Node* world_node = Map_FindWorldspawn(g_map);
|
||||||
|
const char* entity_name = gtk_label_get_text(GTK_LABEL(GTK_BIN(item)->child));
|
||||||
|
|
||||||
|
if(!(world_node && string_equal(entity_name, "worldspawn")))
|
||||||
|
{
|
||||||
|
g_pParentWnd->ActiveXY()->OnEntityCreate(entity_name);
|
||||||
|
} else {
|
||||||
|
GlobalRadiant().m_pfnMessageBox(GTK_WIDGET(MainFrame_getWindow()), "There's already a worldspawn in your map!"
|
||||||
|
"",
|
||||||
|
"Info",
|
||||||
|
eMB_OK,
|
||||||
|
eMB_ICONDEFAULT);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EntityClassMenu_addItem(GtkMenu* menu, const char* name)
|
void EntityClassMenu_addItem(GtkMenu* menu, const char* name)
|
||||||
|
@ -2791,6 +2803,7 @@ void XYWindow_Construct()
|
||||||
GlobalPreferenceSystem().registerPreference("SI_ShowOutlines", BoolImportStringCaller(g_xywindow_globals_private.show_outline), BoolExportStringCaller(g_xywindow_globals_private.show_outline));
|
GlobalPreferenceSystem().registerPreference("SI_ShowOutlines", BoolImportStringCaller(g_xywindow_globals_private.show_outline), BoolExportStringCaller(g_xywindow_globals_private.show_outline));
|
||||||
GlobalPreferenceSystem().registerPreference("SI_ShowAxis", BoolImportStringCaller(g_xywindow_globals_private.show_axis), BoolExportStringCaller(g_xywindow_globals_private.show_axis));
|
GlobalPreferenceSystem().registerPreference("SI_ShowAxis", BoolImportStringCaller(g_xywindow_globals_private.show_axis), BoolExportStringCaller(g_xywindow_globals_private.show_axis));
|
||||||
GlobalPreferenceSystem().registerPreference("CamXYUpdate", BoolImportStringCaller(g_xywindow_globals_private.m_bCamXYUpdate), BoolExportStringCaller(g_xywindow_globals_private.m_bCamXYUpdate));
|
GlobalPreferenceSystem().registerPreference("CamXYUpdate", BoolImportStringCaller(g_xywindow_globals_private.m_bCamXYUpdate), BoolExportStringCaller(g_xywindow_globals_private.m_bCamXYUpdate));
|
||||||
|
GlobalPreferenceSystem().registerPreference("ShowWorkzone", BoolImportStringCaller(g_xywindow_globals_private.d_show_work), BoolExportStringCaller(g_xywindow_globals_private.d_show_work));
|
||||||
|
|
||||||
GlobalPreferenceSystem().registerPreference("SI_AxisColors0", Vector3ImportStringCaller(g_xywindow_globals.AxisColorX), Vector3ExportStringCaller(g_xywindow_globals.AxisColorX));
|
GlobalPreferenceSystem().registerPreference("SI_AxisColors0", Vector3ImportStringCaller(g_xywindow_globals.AxisColorX), Vector3ExportStringCaller(g_xywindow_globals.AxisColorX));
|
||||||
GlobalPreferenceSystem().registerPreference("SI_AxisColors1", Vector3ImportStringCaller(g_xywindow_globals.AxisColorY), Vector3ExportStringCaller(g_xywindow_globals.AxisColorY));
|
GlobalPreferenceSystem().registerPreference("SI_AxisColors1", Vector3ImportStringCaller(g_xywindow_globals.AxisColorY), Vector3ExportStringCaller(g_xywindow_globals.AxisColorY));
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
<links>
|
<links>
|
||||||
<item name="Web Links & Misc" url="links.htm"/>
|
<item name="Web Links & Misc" url="links.htm"/>
|
||||||
<item name="GtkRadiant Bugzilla - Report Bug" url="http://zerowing.idsoftware.com/bugzilla/index.cgi"/>
|
<item name="GtkRadiant Bugzilla - Report Bug" url="http://zerowing.idsoftware.com/bugzilla/index.cgi"/>
|
||||||
<item name="MapCenter's GtkRadiant Forum" url="http://www.map-center.com/modules.php?name=Forums&file=viewforum&f=8"/>
|
|
||||||
<item name="q3map2 handbook (web)" url="http://shaderlab.com/q3map2/manual/default.htm"/>
|
<item name="q3map2 handbook (web)" url="http://shaderlab.com/q3map2/manual/default.htm"/>
|
||||||
|
<item name="ETB documentation (web)" url="http://www.map-craft.com/modules.php?name=ETB"/>
|
||||||
<item name="ChangeLog" url="changelog.txt"/>
|
<item name="ChangeLog" url="changelog.txt"/>
|
||||||
<item name="Q3Map2 ChangeLog" url="changelog.q3map2.txt"/>
|
<item name="Q3Map2 ChangeLog" url="changelog.q3map2.txt"/>
|
||||||
<item name="Credits" url="credits.html"/>
|
<item name="Credits" url="credits.html"/>
|
||||||
|
|
Loading…
Reference in a new issue