예제 #1
0
        public ProgressDialog(Window parent) : base()
        {
            this.Title        = "Updating iPod...";
            this.HasSeparator = false;
            this.TransientFor = parent;
            this.DefaultWidth = 400;

            VBox vbox = new VBox(false, 6);

            vbox.BorderWidth = 6;

            HBox hbox = new HBox(false, 6);

            Gdk.PixbufAnimation animation = new Gdk.PixbufAnimation(Assembly.GetExecutingAssembly(),
                                                                    "ipod.gif");
            hbox.PackStart(new Gtk.Image(animation), false, false, 0);

            label           = new Label("");
            label.Xalign    = 0.0f;
            label.UseMarkup = true;

            SetEllipsize(label);
            hbox.PackStart(label, true, true, 0);

            vbox.PackStart(hbox, true, false, 0);

            bar = new ProgressBar();
            vbox.PackStart(bar, true, false, 0);

            VBox.PackStart(vbox, false, false, 0);
            VBox.ShowAll();

            notify = new ThreadNotify(new ReadyEvent(OnNotify));
        }
예제 #2
0
        private void ExtractFile(TreeIter iter, string filename)
        {
            waitWindow = new WaitWindow(this, "Extracting", filename);
            waitWindow.Show();

            ThreadNotify done = new ThreadNotify(new ReadyEvent(() =>
            {
                waitWindow.Destroy();
                waitWindow = null;
            }));

            ThreadNotify error = new ThreadNotify(new ReadyEvent(() =>
            {
                waitWindow.Destroy();
                waitWindow = null;

                CustomMessageDialog msg =
                    new CustomMessageDialog(this, MessageType.Error, fileSystem.LastError);
                msg.Run();
                msg.Destroy();
            }));

            Packer.Item item = packStore.GetValue(iter, 0) as Packer.Item;
            new Thread(new ThreadStart(() =>
            {
                if (fileSystem.Extract(item, filename))
                {
                    done.WakeupMain();
                }
                else
                {
                    error.WakeupMain();
                }
            })).Start();
        }
예제 #3
0
        private void ShowWindow()
        {
            Application.Init();

            Glade.XML gxml = new Glade.XML(null, "ImLogViewer.glade", "imviewer", null);
            gxml.Autoconnect(this);

            imviewer.Icon = IconTheme.Default.LoadIcon("system-search", 16, IconLookupFlags.NoSvg);

            conversation.PixelsAboveLines = 3;
            conversation.LeftMargin       = 4;
            conversation.RightMargin      = 4;

            TextTag boldtag = new TextTag("bold");

            boldtag.Weight = Pango.Weight.Bold;
            conversation.Buffer.TagTable.Add(boldtag);

            TextTag highlight = new TextTag("highlight");

            highlight.Background = "yellow";
            conversation.Buffer.TagTable.Add(highlight);

            tree_store = new TreeStore(new Type[] { typeof(string), typeof(string), typeof(object) });

            timelinetree.Model = tree_store;
            timelinetree.AppendColumn("Date", new CellRendererText(), "markup", 0);
            timelinetree.AppendColumn("Snippet", new CellRendererText(), "text", 1);
            timelinetree.Selection.Changed += OnConversationSelected;

            if (highlight_text != null)
            {
                search_entry.Text = highlight_text;
            }

            if (search_text != null)
            {
                Search(search_text);
            }

            search_entry.Activated += OnSearchClicked;
            search_button.Clicked  += OnSearchClicked;
            clear_button.Clicked   += OnClearClicked;
            imviewer.DeleteEvent   += new DeleteEventHandler(OnWindowDelete);

            AccelGroup      accel_group = new AccelGroup();
            GlobalKeybinder global_keys = new GlobalKeybinder(accel_group);

            global_keys.AddAccelerator(OnWindowClose, (uint)Gdk.Key.Escape, 0, Gtk.AccelFlags.Visible);
            imviewer.AddAccelGroup(accel_group);

            // Index the logs
            index_thread_notify = new ThreadNotify(new ReadyEvent(RepopulateTimeline));
            Thread t = new Thread(new ThreadStart(IndexLogs));

            t.Start();

            Application.Run();
        }
예제 #4
0
        /// <summary>
        /// Perform sim card connection and contacts read.
        /// </summary>
        private void SimConnect()
        {
            MainClass.GtkWait();

            if (GlobalObj.IsPowered)
            {
                // Disconnect card if needed
                GlobalObj.CloseConnection();
            }

            // Connect to smartcard
            retStr = GlobalObj.AnswerToReset(ref ATR);

            // check for error
            if (retStr != "")
            {
                // error on answer to reset
                log.Error("MainWindowClass::SimConnect: " + retStr);
                MainClass.ShowMessage(MainWindow, "ERROR", retStr, MessageType.Error);
                return;
            }

            // read sim contacts and fill list
            retStr = GlobalObjUI.SelectSimContactsList();

            // check for error
            if (retStr != "")
            {
                if (retStr == GlobalObjUI.LMan.GetString("needpindisable"))
                {
                    // Pin1 enabled
                    MainClass.ShowMessage(MainWindow, "ERROR", retStr, MessageType.Error);
                    EnableSimPinControl();
                    return;
                }
                else
                {
                    // error on reading contacts list
                    GlobalObj.CloseConnection();
                    MainClass.ShowMessage(MainWindow, "ERROR", retStr, MessageType.Error);
                    return;
                }
            }

            ScanSimBefore();
            lstSimContacts.Clear();

            // Reset status values
            GlobalObjUI.SimADNStatus   = 1;
            GlobalObjUI.SimADNPosition = 0;
            GlobalObjUI.SimADNError    = "";

            // Start thread for reading process
            notify    = new ThreadNotify(new ReadyEvent(ReadingUpdate));
            simThread = new System.Threading.Thread(new System.Threading.ThreadStart(GlobalObjUI.ReadSimContactsList));
            simThread.Start();
        }
예제 #5
0
파일: FindBar.cs 프로젝트: retahc/old-code
        public FindBar(ObjectBrowser objectBrowser) : base(false, 0)
        {
            browser     = objectBrowser;
            found       = new Queue();
            notify      = new ThreadNotify(new ReadyEvent(FoundEvent));
            BorderWidth = Spacing = 5;

            SetupUI();
        }
예제 #6
0
    public ImageLoaderThread()
    {
        queue           = new List <RequestItem> ();
        requests_by_uri = new Dictionary <SafeUri, RequestItem> ();
//		requests_by_path = Hashtable.Synchronized (new Hashtable ());
        processed_requests = new Queue();

        pending_notify = new ThreadNotify(new Gtk.ReadyEvent(HandleProcessedRequests));

        instances.Add(this);
    }
예제 #7
0
        void OnStartWorking(object sender, EventArgs a)
        {
            Button b = (Button)sender;

            b.Sensitive = false;
            // start a timer to update the progress bar
            timer = Gtk.Timeout.Add((uint)100, new Function(DoUpdateProgressbar));

            Thread thr = new Thread(new ThreadStart(Work));

            thr.Start();
            notify = new ThreadNotify(new ReadyEvent(Finished));
        }
예제 #8
0
    public PixbufLoader()
    {
        queue              = new ArrayList();
        requests_by_path   = Hashtable.Synchronized(new Hashtable());
        processed_requests = new Queue();

        pending_notify = new ThreadNotify(new Gtk.ReadyEvent(HandleProcessedRequests));

        worker_thread = new Thread(new ThreadStart(WorkerThread));
        worker_thread.Start();

        all_worker_threads.Add(worker_thread);
    }
예제 #9
0
    public MainWindow() : base(Gtk.WindowType.Toplevel)
    {
        Build();

        //Initial value
        inc = 0;
        this.label1.Text = "Running thread in background. Ui should remain responsive.";
        label            = this.label1;
        // Create and start the thread
        Thread thr = new Thread(new ThreadStart(ThreadRoutine));

        notify           = new ThreadNotify(new ReadyEvent(threadDone));
        thr.IsBackground = true;
        thr.Start();
    }
예제 #10
0
        /// <summary>
        /// Start sim update thread
        /// </summary>
        private void SimUpdate(Contacts cnts, bool isAppend)
        {
            ScanSimBefore();

            // Reset status values
            GlobalObjUI.SimADNStatus   = 1;
            GlobalObjUI.SimADNPosition = 0;
            GlobalObjUI.SimADNError    = "";

            // Start thread for reading process
            notify = new ThreadNotify(new ReadyEvent(WritingUpdate));
            System.Threading.ThreadStart threadStart = delegate() {
                GlobalObjUI.WriteSimContactsList(cnts, isAppend);
            };
            simThread = new System.Threading.Thread(threadStart);
            simThread.Start();
        }
예제 #11
0
        public override void Initialize(IPlayer player)
        {
            if (!Inotify.Enabled)
            {
                return;
            }

            this.player = player;

            notify = new ThreadNotify(new ReadyEvent(OnNotify));

            foreach (string dir in player.WatchedFolders)
            {
                Watch(dir);
            }

            player.WatchedFoldersChangedEvent += OnFoldersChanged;
            Inotify.Start();
        }
예제 #12
0
        public DiffView(string name, string left, string right)
            : base(name + " Changes")
        {
            this.left  = left;
            this.right = right;

            Refresh();

            threadnotify = new ThreadNotify(new ReadyEvent(Refresh));

            leftwatcher  = new System.IO.FileSystemWatcher(Path.GetDirectoryName(left), Path.GetFileName(left));
            rightwatcher = new System.IO.FileSystemWatcher(Path.GetDirectoryName(right), Path.GetFileName(right));

            leftwatcher.Changed  += new FileSystemEventHandler(filechanged);
            rightwatcher.Changed += new FileSystemEventHandler(filechanged);

            leftwatcher.EnableRaisingEvents  = true;
            rightwatcher.EnableRaisingEvents = true;
        }
예제 #13
0
        private void HandleAddFilesAction()
        {
            if (fileSystem == null)
            {
                return;
            }

            CustomFileChooserDialog dlg =
                new CustomFileChooserDialog(this, "Add files to pack", FileChooserAction.Open);

            dlg.FileChooser.SelectMultiple = true;

            using (Gtk.FileFilter filter = new Gtk.FileFilter())
            {
                filter.Name = "All";
                filter.AddPattern("*.*");
                dlg.FileChooser.AddFilter(filter);
            }

            dlg.Ok += (sender, e) =>
            {
                packTreeView.Selection.UnselectAll();

                waitWindow = new WaitWindow(this, "Adding", "");
                waitWindow.Show();

                ThreadNotify done = new ThreadNotify(new ReadyEvent(() =>
                {
                    dlg.Destroy();
                    waitWindow.Destroy();
                    waitWindow = null;
                }));

                new Thread(new ThreadStart(() =>
                {
                    dlg.FileChooser.Filenames.ToList().ForEach(
                        file => AppendFile(currentFolder, file));
                    done.WakeupMain();
                })).Start();
            };
            dlg.Cancel += (sender, e) => dlg.Destroy();
            dlg.Show();
        }
예제 #14
0
        private void HandleAddFolderAction()
        {
            if (fileSystem == null)
            {
                return;
            }

            CustomFileChooserDialog dlg =
                new CustomFileChooserDialog(this, "Add folder to pack", FileChooserAction.SelectFolder);

            dlg.Ok += (sender, e) =>
            {
                packTreeView.Selection.UnselectAll();

                waitWindow = new WaitWindow(this, "Adding", "");
                waitWindow.Show();

                ThreadNotify done = new ThreadNotify(new ReadyEvent(() =>
                {
                    waitWindow.Destroy();
                    waitWindow = null;
                }));

                new Thread(new ThreadStart(() =>
                {
                    string path = dlg.FileChooser.Filename;
                    dlg.Destroy();

                    Packer.Item folderItem = NewItem(currentFolder, path);
                    TreeIter folderIter    = AppendItem(currentFolder, folderItem);
                    if (!TreeIter.Zero.Equals(folderIter))
                    {
                        AppendFolders(folderIter, folderItem.HDDPath);
                    }
                    done.WakeupMain();
                })).Start();
            };
            dlg.Cancel += (sender, e) => dlg.Destroy();
            dlg.Show();
        }
예제 #15
0
        private void DeleteContactsSim()
        {
            MessageDialog mdlg = new MessageDialog(MainWindow,
                                                   DialogFlags.Modal,
                                                   MessageType.Question,
                                                   ButtonsType.YesNo,
                                                   GlobalObjUI.LMan.GetString("suredeletesim"));

            mdlg.TransientFor = MainWindow;
            mdlg.Title        = MainClass.AppNameVer + " - " + GlobalObjUI.LMan.GetString("deletesimact");
            ResponseType respType = (ResponseType)mdlg.Run();

            if (respType == ResponseType.Yes)
            {
                // override
                mdlg.Destroy();
                mdlg.Dispose();
                mdlg = null;

                // Delete sim
                ScanSimBefore();

                // Reset status values
                GlobalObjUI.SimADNStatus   = 1;
                GlobalObjUI.SimADNPosition = 0;
                GlobalObjUI.SimADNError    = "";

                // Start thread for reading process
                notify    = new ThreadNotify(new ReadyEvent(WritingUpdate));
                simThread = new System.Threading.Thread(new System.Threading.ThreadStart(GlobalObjUI.DeleteAllSimContactsList));
                simThread.Start();

                return;
            }

            mdlg.Destroy();
            mdlg.Dispose();
            mdlg = null;
        }
예제 #16
0
        private void OpenPack(string filename)
        {
            if (Packer.Create(System.IO.Path.GetExtension(filename), out fileSystem))
            {
                waitWindow = new WaitWindow(this, "Opening", filename);
                waitWindow.Show();

                ThreadNotify done = new ThreadNotify(new ReadyEvent(() =>
                {
                    waitWindow.Destroy();
                    waitWindow = null;
                }));

                ThreadNotify error = new ThreadNotify(new ReadyEvent(() =>
                {
                    waitWindow.Destroy();
                    waitWindow = null;

                    CustomMessageDialog msg =
                        new CustomMessageDialog(this, MessageType.Error, fileSystem.LastError);
                    msg.Run();
                    msg.Destroy();
                }));

                new Thread(new ThreadStart(() =>
                {
                    if (fileSystem.Open(filename))
                    {
                        RebuildPackTree(fileSystem.ListFiles());
                        ChangePackActionSensitive(true);
                        done.WakeupMain();
                    }
                    else
                    {
                        error.WakeupMain();
                    }
                })).Start();
            }
        }
예제 #17
0
 protected Task()
 {
     OperationType = VersionControlOperationType.Other;
     threadnotify  = new ThreadNotify(new ReadyEvent(Wakeup));
 }
예제 #18
0
        protected Task()
        {
            threadnotify = new ThreadNotify(new ReadyEvent(Wakeup));

            tracker = IdeApp.Workbench.ProgressMonitors.GetOutputProgressMonitor("Version Control", "md-version-control", false, true);
        }
예제 #19
0
 protected Task()
 {
     threadnotify = new ThreadNotify(new ReadyEvent(Wakeup));
 }
예제 #20
0
        private void HandleSaveAction()
        {
            if (fileSystem == null)
            {
                return;
            }

            CustomFileChooserDialog dlg =
                new CustomFileChooserDialog(this, "Save pack", FileChooserAction.Save);

            dlg.FileChooser.SelectMultiple = false;

            using (Gtk.FileFilter filter = new Gtk.FileFilter())
            {
                filter.Name = fileSystem.Extension.ToUpper();
                filter.AddPattern("*." + fileSystem.Extension.ToLower());
                dlg.FileChooser.AddFilter(filter);
            }

            using (Gtk.FileFilter filter = new Gtk.FileFilter())
            {
                filter.Name = "All";
                filter.AddPattern("*.*");
                dlg.FileChooser.AddFilter(filter);
            }

            dlg.Ok += (sender, e) =>
            {
                string filename = dlg.FileChooser.Filename;

                waitWindow = new WaitWindow(this, "Saving", filename);
                waitWindow.Show();

                ThreadNotify done = new ThreadNotify(new ReadyEvent(() =>
                {
                    waitWindow.Destroy();
                    waitWindow = null;
                }));

                ThreadNotify error = new ThreadNotify(new ReadyEvent(() =>
                {
                    waitWindow.Destroy();
                    waitWindow = null;

                    CustomMessageDialog msg =
                        new CustomMessageDialog(this, MessageType.Error, fileSystem.LastError);
                    msg.Run();
                    msg.Destroy();
                }));

                new Thread(new ThreadStart(() =>
                {
                    if (fileSystem.Save(filename))
                    {
                        done.WakeupMain();
                    }
                    else
                    {
                        error.WakeupMain();
                    }
                })).Start();

                dlg.Destroy();
            };
            dlg.Cancel += (sender, e) => dlg.Destroy();
            dlg.Show();
        }