?? sdstatusbar.cs
字號:
// DINAMIC XML Editor
//
// Copyright (c) 2002-2003 Dusan Hlavaty
// mailto: duddo@atlas.cz
//
// This software is licensed under the terms of
// GNU General Public license
//
using System;
using System.Drawing;
using System.Windows.Forms;
namespace XML_editor.MyComponents
{
/// <summary>
/// Moj 'instantny' status bar (s ohranicenymi poliami a progress barom), ktory
/// uz priamo 'fuknem' do aplikacie. (Aby som ho nemusel cely vytvarat v hlavnom
/// formulari.)
/// </summary>
public class SdStatusBar : AxStatusBar
{
/// <summary>
/// text v status bare
/// </summary>
private AxStatusBarPanel txtStatusBarPanel = new AxStatusBarPanel();
/// <summary>
/// progress v status bare
/// </summary>
private AxProgressStatusBarPanel progressStatusBarPanel = new AxProgressStatusBarPanel();
/// <summary>
/// poloha kurzora v status bare
/// </summary>
private AxStatusBarPanel cursorStatusBarPanel = new AxStatusBarPanel();
/// <summary>
/// Insert-mod v status bare
/// </summary>
private AxStatusBarPanel modeStatusBarPanel = new AxStatusBarPanel();
private bool cancelEnabled;
// -------------------------------------------------------------------------
/// <summary>
/// Panel ukazujuci polohu kurzora
/// </summary>
private AxStatusBarPanel CursorStatusBarPanel
{
get
{
return this.cursorStatusBarPanel;
}
}
// -------------------------------------------------------------------------
/// <summary>
/// Panel ukazujuci typ kurzora (INSERT/OVERWRITE)
/// </summary>
private AxStatusBarPanel ModeStatusBarPanel
{
get
{
return this.modeStatusBarPanel;
}
}
// -------------------------------------------------------------------------
/// <summary>
///
/// </summary>
public bool CancelEnabled
{
get
{
return this.cancelEnabled;
}
set
{
this.cancelEnabled = value;
}
}
// -------------------------------------------------------------------------
/// <summary>
/// Inicializuje instanciu <see cref="SdStatusBar"/>
/// </summary>
public SdStatusBar()
{
txtStatusBarPanel.Width = 500;
txtStatusBarPanel.AutoSize = StatusBarPanelAutoSize.Spring;
Panels.Add(txtStatusBarPanel);
/*
statusProgressBar.Width = 200;
statusProgressBar.Height = 12;
statusProgressBar.Location = new Point(160, 4);
statusProgressBar.Minimum = 0;
statusProgressBar.Visible = false;
this.Controls.Add(statusProgressBar);
*/
progressStatusBarPanel.Width = 100;
progressStatusBarPanel.AutoSize = StatusBarPanelAutoSize.None;
progressStatusBarPanel.Alignment = HorizontalAlignment.Left;
Panels.Add(progressStatusBarPanel);
cursorStatusBarPanel.Width = 150;
cursorStatusBarPanel.AutoSize = StatusBarPanelAutoSize.None;
cursorStatusBarPanel.Alignment = HorizontalAlignment.Left;
Panels.Add(cursorStatusBarPanel);
modeStatusBarPanel.Width = 35;
modeStatusBarPanel.AutoSize = StatusBarPanelAutoSize.None;
modeStatusBarPanel.Alignment = HorizontalAlignment.Right;
Panels.Add(modeStatusBarPanel);
ShowPanels = true;
}
// -------------------------------------------------------------------------
/// <summary>
/// Zobrazi chybovu hlasku v lavom status-bar paneli. Pred text automaticky vpise slovo "Chyba : "
/// </summary>
/// <param name="message">Text chyby, ktory sa ma zobrazit</param>
public void ShowErrorMessage(string message)
{
txtStatusBarPanel.Text = "Chyba : " + message;
}
// -------------------------------------------------------------------------
/// <summary>
/// Zobrazi chybovu hlasku v lavom status-bar paneli. Pred text automaticky vpise slovo "Chyba : "
/// </summary>
/// <param name="image">not used</param>
/// <param name="message">Text chyby, ktory sa ma zobrazit</param>
public void ShowErrorMessage(Image image, string message)
{
txtStatusBarPanel.Text = "Chyba : " + message;
}
// -------------------------------------------------------------------------
/// <summary>
/// Zobrazi hlasku v lavom status-bar paneli.
/// </summary>
/// <param name="message">Hlaska, ktora sa ma zobrazit</param>
public void SetMessage(string message)
{
txtStatusBarPanel.Text = message;
}
// -------------------------------------------------------------------------
/// <summary>
/// Zobrazi hlasku v lavom status-bar paneli.
/// </summary>
/// <param name="image">not used</param>
/// <param name="message">Hlaska, ktora sa ma zobrazit</param>
public void SetMessage(Image image, string message)
{
txtStatusBarPanel.Text = message;
}
// -------------------------------------------------------------------------
/// <summary>
/// Zozbrazi polohu kurzora v status bare
/// </summary>
/// <param name="column">stlpec na ktorom sa nachadza kurzor</param>
/// <param name="line">riadok v ktorom sa nachadza kurzor</param>
/// <param name="charOffset">znak na ktorom sa nachadza kurzor (TAB sa pocita ako jeen znak)</param>
public void SetCursorPosition(int column, int line, int charOffset)
{
CursorStatusBarPanel.Text = String.Format("Ln {0,-10} Col {1,-5} Ch {2,-5}", line, column, charOffset);
}
// -------------------------------------------------------------------------
/// <summary>
/// Zobrazi, ci sme v "insert mode" alebo v "prepisovacom mode"
/// </summary>
/// <param name="insertMode"></param>
public void SetInsertMode(bool insertMode)
{
ModeStatusBarPanel.Text = insertMode ? "INS" : "OVR";
}
// Progress Monitor implementation
private string oldMessage = null;
// -------------------------------------------------------------------------
/// <summary>
/// Zaciatok prace - zobrazi progressbar a nastavi jeho maximalnu hodnotu.
/// </summary>
/// <param name="name">text, ktory sa ma zobrazit</param>
/// <param name="totalWork">maximalna hodnota progress baru</param>
public void BeginTask(string name, int totalWork)
{
oldMessage = txtStatusBarPanel.Text;
SetMessage(name);
progressStatusBarPanel.Maximum = totalWork;
progressStatusBarPanel.ProgressVisible = true;
// statusProgressBar.Maximum = totalWork;
// statusProgressBar.Visible = true;
}
// -------------------------------------------------------------------------
/// <summary>
/// Nastavi progress bar v status bare na zadanu hodnotu
/// </summary>
/// <param name="work"></param>
public void TaskWorked(int work)
{
progressStatusBarPanel.Value = work;
// statusProgressBar.Value = work;
}
// -------------------------------------------------------------------------
/// <summary>
/// Koniec prace - schova progress bar
/// </summary>
public void EndTask()
{
SetMessage(oldMessage);
oldMessage = null;
progressStatusBarPanel.ProgressVisible = false;
// statusProgressBar.Visible = false;
}
// -------------------------------------------------------------------------
/// <summary>
/// Toto neviem na co by mohlo byt :)
/// </summary>
public bool Canceled
{
get
{
return oldMessage == null;
}
set
{
this.EndTask();
}
}
} // class SdStatusBar
} // namespace XML_editor.MyComponents
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -