コード例 #1
0
 public InviteToChatDialog(Network network, Node node)
     : this(network, node, null)
 {
     if (node == null) {
         throw new ArgumentNullException ("node");
     }
 }
コード例 #2
0
ファイル: Gui.cs プロジェクト: codebutler/meshwork
 public static PrivateChatSubpage GetPrivateMessageWindow(Node node)
 {
     if (privateMessageWindows.ContainsKey(node.Network.NetworkID + node.NodeID)) {
         return privateMessageWindows[node.Network.NetworkID + node.NodeID];
     } else {
         return null;
     }
 }
コード例 #3
0
ファイル: UserMenu.cs プロジェクト: codebutler/meshwork
        public UserMenu(Network network, Node node)
        {
            m_Menu = new Menu();

            m_MessageMenuItem = new MenuItem("_Message");
            m_MessageMenuItem.Activated += on_m_MessageMenuItem_activate;
            m_Menu.Append(m_MessageMenuItem);

            m_GetInfoMenuItem = new MenuItem("View _Info");
            m_GetInfoMenuItem.Activated += on_m_GetInfoMenuItem_activate;
            m_Menu.Append(m_GetInfoMenuItem);

            m_InviteChatMenuRoom = new MenuItem("In_vite to Chat...");
            m_InviteChatMenuRoom.Activated += on_m_InviteChatMenuRoom_activate;
            m_Menu.Append(m_InviteChatMenuRoom);

            m_Menu.Append(new SeparatorMenuItem());

            m_ConnectMenuItem = new MenuItem("C_onnect");
            m_ConnectMenuItem.Activated += on_mnuUsersConnectTo_activate;
            m_Menu.Append(m_ConnectMenuItem);

            m_Menu.Append(new SeparatorMenuItem());

            m_BrowseMenuItem = new MenuItem("_Browse");
            m_BrowseMenuItem.Activated += on_m_BrowseMenuItem_activate;
            m_Menu.Append(m_BrowseMenuItem);

            m_SendFileMenuItem = new MenuItem("Send _File...");
            m_SendFileMenuItem.Activated += on_m_SendFileMenuItem_activate;
            m_Menu.Append(m_SendFileMenuItem);

            m_TrustMenuItem = new MenuItem("_Trust");
            m_TrustMenuItem.Activated += on_m_TrustMenuItem_activate;
            m_Menu.Append(m_TrustMenuItem);

            m_Menu.ShowAll();

            this.selectedNode = node;
            this.network = network;
        }
コード例 #4
0
ファイル: CmisTreeStore.cs プロジェクト: emrul/CmisSync
        private void UpdateCmisTreeNode (TreeIter iter, Node node)
        {
//            Node oldNode = CmisStore.GetValue (iter, (int)Column.ColumnNode) as Node;
//            if (oldNode != node)
//            {
//                CmisStore.SetValue (iter, (int)Column.ColumnNode, node);
//            }
//            string oldName = CmisStore.GetValue (iter, (int)Column.ColumnName) as string;
//            string newName = node.Name;
//            if (oldName != newName)
//            {
//                CmisStore.SetValue (iter, (int)Column.ColumnName, newName);
//            }
//            bool oldRoot = (bool)CmisStore.GetValue (iter, (int)Column.ColumnRoot);
//            bool newRoot = (node.Parent == null);
//            if (oldRoot != newRoot)
//            {
//                CmisStore.SetValue (iter, (int)Column.ColumnRoot, newRoot);
//            }
//            bool oldSelected = (bool)CmisStore.GetValue (iter, (int)Column.ColumnSelected);
//            bool newSelected = (node.Selected != false);
//            if (oldSelected != newSelected)
//            {
//                CmisStore.SetValue (iter, (int)Column.ColumnSelected, newSelected);
//            }
//            bool oldSelectedThreeState = (bool)CmisStore.GetValue (iter, (int)Column.ColumnSelectedThreeState);
//            bool newSelectedThreeState = (node.Selected == null);
//            if (oldSelectedThreeState != newSelectedThreeState)
//            {
//                CmisStore.SetValue (iter, (int)Column.ColumnSelectedThreeState, newSelectedThreeState);
//            }
//            string oldStatus = CmisStore.GetValue (iter, (int)Column.ColumnStatus) as string;
            string newStatus = "";
            switch (node.Status) {
            case LoadingStatus.START:
                newStatus = Properties_Resources.LoadingStatusSTART;
                break;
            case LoadingStatus.LOADING:
                newStatus = Properties_Resources.LoadingStatusLOADING;
                break;
            case LoadingStatus.ABORTED:
                newStatus = Properties_Resources.LoadingStatusABORTED;
                break;
            default:
                newStatus = "";
                break;
            }
//            if (oldStatus != newStatus)
//            {
//                CmisStore.SetValue (iter, (int)Column.ColumnStatus, newStatus);
//            }

            CmisStore.SetValues (iter, node, node.Name, node.Parent == null, node.Selected != false, node.Selected == null, newStatus);
            foreach (Node child in node.Children)
            {
                TreeIter iterChild;
                GetChild (iter, out iterChild, child);
                UpdateCmisTreeNode (iterChild, child);
            }
            return;
        }
コード例 #5
0
ファイル: CmisTreeStore.cs プロジェクト: emrul/CmisSync
 private void GetChild (TreeIter iterParent, out TreeIter iterChild, Node child)
 {
     TreeIter iter;
     if (CmisStore.IterChildren (out iter, iterParent))
     {
         do
         {
             string name = CmisStore.GetValue (iter, (int)Column.ColumnName) as string;
             Node node = CmisStore.GetValue (iter, (int)Column.ColumnNode) as Node;
             if (name == child.Name)
             {
                 if (node != child)
                 {
                     Console.WriteLine ("GetChild Error " + name);
                 }
                 iterChild = iter;
                 return;
             }
         } while (CmisStore.IterNext(ref iter));
     }
     iterChild = CmisStore.AppendNode (iterParent);
 }
コード例 #6
0
ファイル: Gui.cs プロジェクト: codebutler/meshwork
        public static PrivateChatSubpage StartPrivateChat(Network network, Node node, bool focus)
        {
            if (node == null)  {
                throw new ArgumentNullException("node");
            }

            if (Core.IsLocalNode(node)) {
                Gui.ShowErrorDialog("You cannot send messages to yourself!");
                return null;
            } else if (node.FinishedKeyExchange == true) {
                PrivateChatSubpage page;
                if (privateMessageWindows.ContainsKey(network.NetworkID + node.NodeID) == false) {
                    page = new PrivateChatSubpage(network, node);
                    privateMessageWindows[network.NetworkID + node.NodeID] = page;
                    ChatsPage.Instance.AddPrivateChatSubpage(page);
                } else {
                    page = (PrivateChatSubpage)privateMessageWindows[network.NetworkID + node.NodeID];
                }

                if (focus) {
                    Gui.MainWindow.SelectedPage = ChatsPage.Instance;
                    page.GrabFocus();
                }

                return page;
            } else {
                Gui.ShowErrorDialog("You cannot send messages to untrusted nodes.");
                return null;
            }
        }
コード例 #7
0
ファイル: Gui.cs プロジェクト: codebutler/meshwork
 public static void StartPrivateChat(Network network, Node node)
 {
     StartPrivateChat(network, node, true);
 }
コード例 #8
0
ファイル: Gui.cs プロジェクト: codebutler/meshwork
 public static void RemovePrivateMessageWindow(Network network, Node node)
 {
     if (privateMessageWindows.ContainsKey(network.NetworkID + node.NodeID)) {
         privateMessageWindows.Remove(network.NetworkID + node.NodeID);
     }
 }
コード例 #9
0
ファイル: Canvas.cs プロジェクト: Clancey/Canvas
 protected override bool OnGrabBrokenEvent(Gdk.EventGrabBroken evnt)
 {
     if (MouseGrabNode != null) {
         MouseGrabNode.GrabBroken ();
         MouseGrabNode = null;
     }
     return base.OnGrabBrokenEvent (evnt);
 }
コード例 #10
0
ファイル: Canvas.cs プロジェクト: Clancey/Canvas
        protected override bool OnButtonReleaseEvent(Gdk.EventButton evnt)
        {
            int x = (int)evnt.X;
            int y = (int)evnt.Y;

            if (MouseGrabNode != null) {
                var element = engine.InputNodeAt (root, x, y);
                var point = engine.TransformPoint (MouseGrabNode, x, y);
                MouseGrabNode.ButtonRelease (new ButtonEventArgs (point.X, point.Y, evnt.XRoot, evnt.YRoot, evnt.Button, (ModifierType)evnt.State));

                if (element == MouseGrabNode && !dragging) {
                    element.Activated ();
                    if (element.CanFocus)
                        FocusedNode = element;
                }
            }

            dragging = false;
            MouseGrabNode = null;
            return true;
        }
コード例 #11
0
ファイル: Canvas.cs プロジェクト: Clancey/Canvas
        protected override bool OnButtonPressEvent(Gdk.EventButton evnt)
        {
            int x = (int)evnt.X;
            int y = (int)evnt.Y;
            var element = engine.InputNodeAt (root, x, y);

            HasFocus = true;

            MouseGrabNode = element;
            if (MouseGrabNode != null) {
                MouseGrabNode.CancelAnimations ();
                DragStart = new Gdk.Point (x, y);

                double dx = x;
                double dy = y;
                var point = engine.TransformPoint (MouseGrabNode.Parent, dx, dy);
                DragOffset = new Gdk.Point ((int) (point.X - MouseGrabNode.X), (int) (point.Y - MouseGrabNode.Y));

                var transformedPoint = engine.TransformPoint (MouseGrabNode, x, y);
                MouseGrabNode.ButtonPress (new ButtonEventArgs (transformedPoint.X, transformedPoint.Y, evnt.XRoot, evnt.YRoot, evnt.Button, (ModifierType)evnt.State));
            }

            return true;
        }
コード例 #12
0
ファイル: Canvas.cs プロジェクト: Clancey/Canvas
        public void ShowMenu(Node node, int rootX, int rootY, uint button)
        {
            if (node.MenuItems == null || !node.MenuItems.Any ())
                return;
            Menu menu = new Menu ();

            foreach (var item in node.MenuItems) {
                MenuItem menuItem = new MenuItem (item.Name);
                var tmp = item;
                menuItem.Activated += (sender, e) => {
                    node.OnMenuEntryActivated (tmp);
                };
                menu.Append (menuItem);
                menuItem.Show ();
            }

            menuPosition = new Gdk.Point (rootX, rootY);
            menu.Popup (null, null, PositionMenu, button, Global.CurrentEventTime);
        }
コード例 #13
0
ファイル: Canvas.cs プロジェクト: Clancey/Canvas
 public void FocusNode(Node node)
 {
     if (node.CanFocus)
         FocusedNode = node;
 }
コード例 #14
0
        private InviteToChatDialog(Network network, Node node, ChatRoom room)
            : base(null, "InviteToChatDialog")
        {
            if (network == null) {
                throw new ArgumentNullException ("network");
            }

            this.network = network;

            CellRendererPixbuf imageCell = new CellRendererPixbuf ();
            CellRendererText textCell = new CellRendererText ();

            userStore = new ListStore (typeof (Node));
            userComboBox.PackStart (imageCell, false);
            userComboBox.PackStart (textCell, true);
            userComboBox.SetCellDataFunc (textCell, UserComboTextFunc);
            userComboBox.SetCellDataFunc (imageCell, UserComboImageFunc);
            userComboBox.Changed += delegate {
                EnableDisableOkButton();
            };

            imageCell = new CellRendererPixbuf ();
            textCell = new CellRendererText ();

            roomStore = new ListStore (typeof (object));
            roomComboBox.PackStart (textCell, true);
            roomComboBox.PackStart (imageCell, false);
            roomComboBox.SetCellDataFunc (imageCell, RoomComboImageFunc);
            roomComboBox.SetCellDataFunc (textCell, RoomComboTextFunc);
            roomComboBox.Changed += delegate {
                EnableDisableOkButton();
                HideShowPasswordBox();
            };

            if (node == null) {
                foreach (Node currentNode in network.Nodes.Values)
                    userStore.AppendValues (currentNode);
                userComboBox.Model = userStore;
            } else {
                userStore.AppendValues (node);
                userComboBox.Model = userStore;
                userComboBox.Active = 0;
                userComboBox.Sensitive = false;
            }

            if (room == null) {
                int count = 0;
                foreach (ChatRoom currentRoom in network.ChatRooms) {
                    if (currentRoom.InRoom) {
                        if (count == 0)
                            roomStore.AppendValues(new SelectRoom());

                        roomStore.AppendValues(currentRoom);
                        count ++;
                    }
                }
                if (count == 0) {
                    roomStore.AppendValues(new NotInAnyRooms());
                    roomComboBox.Sensitive = false;
                }
                roomComboBox.Model = roomStore;
                roomComboBox.Active = 0;
            } else {
                roomStore.AppendValues(room);
                roomComboBox.Model = roomStore;
                roomComboBox.Active = 0;
                roomComboBox.Sensitive = false;
            }
        }
コード例 #15
0
        void Read(string filename)
        {
            //CultureInfo ci;
             String name = Path.GetFileNameWithoutExtension(filename);
             int i = name.LastIndexOf('-');
             Debug.Assert(i > 0);
             i = name.LastIndexOf('-', i - 1);
             Debug.Assert(i > 0);
             if (i <= 0)
            return;
             string basename = name.Substring(0, i);
             string code = name.Substring(i + 1);

             Language lang;
             if (!Languages.TryGetValue(code, out lang))
             {
            lang = new Language(code);
            Languages.Add(code, lang);
             }

             ResXResourceReader rr = new ResXResourceReader(filename);
             rr.UseResXDataNodes = true;
             IDictionaryEnumerator dict = rr.GetEnumerator();
             while (dict.MoveNext())
             {
            ResXDataNode node = dict.Value as ResXDataNode;
            string key = node.Name;
            object obj = node.GetValue((ITypeResolutionService)null);
            Debug.Assert(obj is string);
            string value = obj as string;
            string comment = node.Comment;

            Node n = new Node(key, value, comment, basename, value, comment);
            if (!lang.Nodes.ContainsKey(key))
               lang.Nodes.Add(key, n);
            else
                if (Localization.DbgOut != null)
                    Localization.DbgOut.MessageWriteLine("Localization: Key '{0}' already exists", key);
             }
        }
コード例 #16
0
 public void AddNewCurrentNode(Node node)
 {
     if (!mCurrentLanguage.Nodes.ContainsKey(node.Key))
     mCurrentLanguage.Nodes.Add(node.Key, node);
 }