using System;
using System.IO;
using System.Windows;
using System.Windows.Media;
using System.Diagnostics;
using System.Globalization;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Input;
using System.Threading;
using System.Printing;
using miew.String;
using agree;
using ActiproSoftware.Windows.Controls.Docking;
using ActiproSoftware.Windows.Controls.Ribbon;
using ActiproSoftware.Windows.Controls.Ribbon.Controls;
namespace agree.Wpf
{
class MyDockPanel : DockPanel
{
StatusBar statusbar;
MainWindow w;
public MyDockPanel(MainWindow w)
{
this.w = w;
MyRibbon rbn = new MyRibbon();
MyDockSite mds = new MyDockSite(w);
this.Children.Add(rbn);
this.Children.Add(mds);
statusbar = new StatusBar();
statusbar.Items.Add("Ready");
w.StatusBar = statusbar;
}
};
class MyWorkspace : Workspace
{
public TabbedMdiContainer tmc;
public TabbedMdiHost tmh;
public MyWorkspace()
{
tmc = new TabbedMdiContainer();
SplitContainer sc_doc = new SplitContainer();
sc_doc.Children.Add(tmc);
tmh = new TabbedMdiHost();
tmh.Content = sc_doc;
this.Content = tmh;
}
};
class MyDockSite : DockSite
{
MainWindow w;
public MyWorkspace wksp;
ToolWindowContainer twc;
SplitContainer sc_outer;
static public MyDockSite g_docksite;
public MyDockSite(MainWindow w)
{
this.w = w;
g_docksite = this;
wksp = new MyWorkspace();
w.object_browser = new ObjectBrowserToolWindow(this);
twc = new ToolWindowContainer();
twc.Items.Add(w.object_browser);
twc.SetValue(DockSite.ControlSizeProperty, new Size(47, 40));
sc_outer = new SplitContainer();
sc_outer.Children.Add(twc);
sc_outer.Children.Add(wksp);
this.Content = sc_outer;
this.CommandBindings.Add(new ShowItemCommand(w).CommandBinding);
//this.CommandBindings.Add(new ShowHighlightedItemCommand(w).CommandBinding);
this.CommandBindings.Add(new Open3dWindow(w).CommandBinding);
// this.CommandBindings.Add(new OpenEdgeWindow(w).CommandBinding);
#if false
// seems like doing it this way, the bindings are not yet available?
//var q = this.CommandBindings.OfType<CommandBinding>();
//var r = q.First(cb => cb.Command is ShowExpandedType);
//r.Command.Execute(g.tm.type_dict["head-adj-scop"]);
set.Execute(g.tm.type_dict["head-adj-scop"], this);
set2.Execute(g.tm.type_dict["head-adj-scop"], this);
Edge e1 = g.tm.type_dict["drop-obj"].Expanded;
Edge e1_args;
if (!g.tm.tray.GetEdgeAtPath(e1, "args", out e1_args))
throw new Exception();
Edge e1_part = g.tm.tray.GetListEdges(e1_args).First();
Edge e2 = g.tm.type_dict["กิน_6578"].Expanded;
Edge result = default(Edge);// new UnifyHelper(g.tm).UnifyRulePart(e1, e1_part, e2);
set3.Execute(new EdgeWindow.CommandArgs
{
e = result,
title = String.Format("{0} ARGS.FIRST ⊓ {1}", e1.Type.Name, e2.Type.Name)
}, this);
#endif
//this.CommandBindings.OfType<CommandBinding>().First(cb => cb.Command is ShowExpandedType).Command.Execute(g.tm.type_dict["head-adj-scop"]);
}
};
}