private void aboutToolStripMenuItem_Click(object sender, EventArgs e) { DialogMessage message = new DialogMessage("TCO v" + Environment.getVersion(), "TCO is a lightweight non-invasive" + "\nbackground time-logging application." + "\n" + "\n Never worry about leaving your" + "\n timer running or losing time for" + "\n not starting after a break." + "\n" + "\n TCO will automatically stop" + "\n counting time when you leave" + "\n and start counting again when" + "\n you return.\n\n\n" + "© Gerald Coggins 2017" ); message.Show(); }
private void helpToolStripMenuItem1_Click(object sender, EventArgs e) { DialogMessage message = new DialogMessage("Helpful Information", "With the apllication in Focus:" + "\n Press F1 to toggle Never-Time-Out mode" + "\n Press Escape to remove all time accumulated since the last log" + "\n Press Space to change mode as if the start/pause button were pressed" + "\n Press Enter to write a log entry" + "\n" + "\nCurrently the only way to change time intervals is to change the values in the" + "\nconfig.prefs file that's created on close and when a log profile is selected." + "\n" + "\n" + "\n" + "\n" ); message.ShowDialog(); }
static void Main() { bool isGoogleSetup = TCOSheetsInterface.Init(); InputHook.Start(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); if (isGoogleSetup == false) { DialogMessage message = new DialogMessage("Google Sheets Error", "An error occured initializing Google Sheets service.\n\nLogs will not be written to Google Sheets."); message.ShowDialog(); } Application.Run(new Form1()); InputHook.End(); }
private void googleSheetsInterfaceSetup() { // not run if the target isn't set up within the program if (m_foundGoogleSheetAndTab == false) { return; } PrefsData.PrefLogIndex index = m_userPrefs.getActiveSheet(); string googleSheetsId = m_userPrefs.getLogGoogleId(index); string tabName = m_userPrefs.getProjectName(index); if (googleSheetsId == "" || tabName == "") { DialogMessage message = new DialogMessage("Information", "A Google Sheets id and tab name must be set in order to use google sheets interface.\nInteraction with google sheet will not function."); message.ShowDialog(); return; } // check wth google sheets to see if the tab needs to be created if (!TCOSheetsInterface.tabExists(m_userPrefs.getLogGoogleId(index), m_userPrefs.getProjectName(index))) { System.Drawing.Size size = new System.Drawing.Size(5, 2); if (!TCOSheetsInterface.createTab(m_userPrefs.getLogGoogleId(index), m_userPrefs.getProjectName(index), size, 1)) { Console.WriteLine("Create new tab [" + m_userPrefs.getProjectName(index) + "] failed"); } // create the header bar in the created tab SheetsLogEntry entryMaker = new SheetsLogEntry(); List <Google.Apis.Sheets.v4.Data.RowData> rows = entryMaker.createTitleBar(); TCOSheetsInterface.updateCells( m_userPrefs.getLogGoogleId(index), m_userPrefs.getProjectName(index), "A1", "E2", rows); } }
public DialogSheetsWindow(PrefsData userPrefs) { m_userPrefs = userPrefs; m_selectedLog = m_userPrefs.getActiveSheet(); this.ShowInTaskbar = false; this.BackColor = Color.LightGray; this.Text = m_stringTitle; this.StartPosition = FormStartPosition.CenterParent; this.FormBorderStyle = FormBorderStyle.FixedToolWindow; this.ShowInTaskbar = false; this.MaximizeBox = false; this.MinimizeBox = false; this.AutoSizeMode = AutoSizeMode.GrowAndShrink; this.AutoSize = true; m_labelText = new Label(); m_labelFilepath = new Label(); m_labelLogName = new Label(); m_labelProjectName = new Label(); m_labelProjectDescription = new Label(); m_labelGoogleSheetId = new Label(); m_buttonConfirm = new Button(); m_buttonCancel = new Button(); // Size m_labelText.Size = new Size(600, 130); m_labelFilepath.AutoSize = true; m_labelLogName.AutoSize = true; m_labelProjectName.AutoSize = true; m_labelProjectDescription.AutoSize = true; m_labelGoogleSheetId.AutoSize = true; m_buttonConfirm.Size = new Size(80, 40); m_buttonCancel.Size = new Size(80, 40); // Location m_labelText.Location = new Point(0, 0); m_labelFilepath.Location = new Point(20, 5 + m_labelText.Size.Height); m_labelLogName.Location = new Point(63, 5 + m_labelText.Size.Height); m_labelProjectName.Location = new Point(178, 5 + m_labelText.Size.Height); m_labelProjectDescription.Location = new Point(293, 5 + m_labelText.Size.Height); m_labelGoogleSheetId.Location = new Point(565, 5 + m_labelText.Size.Height); m_buttonConfirm.Location = new Point(290, 380); m_buttonCancel.Location = new Point(190, 380); // Text m_labelText.Text = m_stringLabelText; m_labelFilepath.Text = m_stringLabelFilepath; m_labelLogName.Text = m_stringLabelLogName; m_labelProjectName.Text = m_stringLabelProjectName; m_labelProjectDescription.Text = m_stringLabelProjectDescription; m_labelGoogleSheetId.Text = m_stringLabelGoogleSheetId; m_buttonConfirm.Text = m_stringButtonConfirm; m_buttonCancel.Text = m_stringButtonCancel; // lambdas m_buttonConfirm.MouseUp += (s, e) => { if (TCOSheetsInterface.getIsServiceActive() == false) { DialogMessage message = new DialogMessage("Google Sheets Service Inactive", "The Google Sheets service has not been set up correctly."); message.ShowDialog(); } m_userPrefs.setActiveLog(m_selectedLog); for (PrefsData.PrefLogIndex i = 0; i < PrefsData.PrefLogIndex.Count; i++) { m_userPrefs.setLogName(m_logData[(int)i].getLogName(), i); m_userPrefs.setProjectName(m_logData[(int)i].getProjectName(), i); m_userPrefs.setProjectDescription(m_logData[(int)i].getProjectDescription(), i); m_userPrefs.setLogGoogleId(m_logData[(int)i].getGoogleSheetsId(), i); } this.DialogResult = DialogResult.OK; this.Close(); }; m_buttonCancel.MouseUp += (s, e) => { this.DialogResult = DialogResult.Cancel; this.Close(); }; m_labelText.BackColor = Color.White; // create log data rows PrefsData.PrefLogIndex entryCount = UserPrefs.getMaxEntries(); m_logData = new ControlLogData[(int)entryCount]; for (PrefsData.PrefLogIndex i = 0; i < entryCount; i++) { m_logData[(int)i] = new ControlLogData(); int Ypos = m_labelFilepath.Location.Y + m_labelFilepath.Size.Height + (int)i * (m_logData[(int)i].m_height + 5); // get the log profile data from user prefs m_logData[(int)i].setLogPath(""); // NOT IMPLEMENTED IN MAIN PROGRAM OR USER PREFERENCES m_logData[(int)i].setLogName(m_userPrefs.getLogName(i)); m_logData[(int)i].setProjectName(m_userPrefs.getProjectName(i)); m_logData[(int)i].setProjectDescription(m_userPrefs.getProjectDescription(i)); m_logData[(int)i].setGoogleSheetsId(m_userPrefs.getLogGoogleId(i)); // create a new instance of the iteration in memory to be used as an index in on CheckedChanged lambda PrefsData.PrefLogIndex radioIndex = i; // NOTE: if this isn't done the value used in the lambda will always be PrefLogIndex.Count // create radio buttun used to select the log RadioButton selectLog = new RadioButton(); selectLog.Size = new Size(15, 15); selectLog.Location = new Point(0, Ypos); if (i == m_selectedLog) { selectLog.Checked = true; } selectLog.CheckedChanged += (s, e) => { RadioButton rb = (RadioButton)s; if (rb.Checked == true) { m_selectedLog = radioIndex; } }; // set position in dialog m_logData[(int)i].Location = new Point(selectLog.Location.X + selectLog.Size.Width + 5, Ypos); this.Controls.Add(selectLog); this.Controls.Add(m_logData[(int)i]); } // END create log data rows this.Controls.Add(m_labelText); this.Controls.Add(m_labelFilepath); this.Controls.Add(m_labelLogName); this.Controls.Add(m_labelProjectName); this.Controls.Add(m_labelProjectDescription); this.Controls.Add(m_labelGoogleSheetId); this.Controls.Add(m_buttonConfirm); this.Controls.Add(m_buttonCancel); }