Exemple #1
0
        private void eventInterface_WindowActivate(Word.Document Doc, Word.Window Wn)
        {
            // Ensure pause checkbox in ribbon is accurate, start by getting timer
            DocumentTimer documentTimer = documentEditTimes[this.Application.ActiveDocument.Name];

            // Set checkbox
            Globals.Ribbons.TimerRibbon.SetPauseStatus(!documentTimer.IsActive);
        }
        internal void PauseOrResumeTimer(bool pause)
        {
            // Get timer
            DocumentTimer documentTimer = documentEditTimes[this.Application.ActiveDocument.Name];

            if (pause && documentTimer.IsActive)
            {
                // Freeze timer
                documentTimer.EditTime += DateTime.Now - documentTimer.LastActive;
                documentTimer.IsActive  = false;
            }
            else if (!pause && !documentTimer.IsActive)
            {
                // Resume timer
                documentTimer.IsActive   = true;
                documentTimer.LastActive = DateTime.Now;
            }
        }
Exemple #3
0
        internal void RefreshDisplay()
        {
            // Clear existing list
            this.timerList.Items.Clear();

            // Ensure all docs are monitored
            foreach (Word.Document doc in Globals.ThisAddIn.Application.Documents)
            {
                bool          isMonitored        = false;
                bool          requiresNameChange = false;
                DocumentTimer oldNameTimer       = null;
                string        oldName            = null;
                foreach (string documentName in documentEditTimes.Keys)
                {
                    if (doc.Name == documentName)
                    {
                        isMonitored = true;
                        break;
                    }
                    else
                    {
                        if (documentEditTimes[documentName].Document == doc)
                        {
                            // Monitored, but name changed!
                            oldName            = documentName;
                            oldNameTimer       = documentEditTimes[documentName];
                            isMonitored        = true;
                            requiresNameChange = true;
                            break;
                        }
                    }
                }

                // Add monitor if not monitored
                if (!isMonitored)
                {
                    Globals.ThisAddIn.MonitorDocument(doc);
                }

                // Rename if necessary
                if (requiresNameChange)
                {
                    documentEditTimes.Remove(oldName);
                    documentEditTimes.Add(doc.Name, oldNameTimer);
                }
            }

            // Create new list
            foreach (string documentName in documentEditTimes.Keys)
            {
                // Check to see if doc is still loaded
                bool isLoaded = false;
                foreach (Word.Document doc in Globals.ThisAddIn.Application.Documents)
                {
                    if (doc.Name == documentName)
                    {
                        isLoaded = true;
                        break;
                    }
                }
                if (!isLoaded)
                {
                    documentEditTimes[documentName].IsActive = false;
                    documentEditTimes[documentName].Document = null;
                }

                // Add item
                this.timerList.Items.Add(string.Format("{0}: {1}", documentName,
                                                       documentEditTimes[documentName].EditTime +
                                                       (documentEditTimes[documentName].IsActive ?
                                                        (DateTime.Now - documentEditTimes[documentName].LastActive) : new TimeSpan(0))));
            }
        }