Exemplo n.º 1
0
int WINAPI SetDirectoryW(const struct SetDirectoryInfo *sdi)
{
  if (sdi->OpMode & OPM_FIND)
    return FALSE;

  CServiceManager* sm = (CServiceManager*)sdi->hPanel;

  DWORD nServiceType = 0;

  if (!wcscmp(sdi->Dir,L"\\") || !wcscmp(sdi->Dir,L".."))
    nServiceType = 0;
  else if (!wcscmp(sdi->Dir,ServicesDirName))
    nServiceType = SERVICE_WIN32;
  else if (!wcscmp(sdi->Dir,DriversDirName))
    nServiceType = SERVICE_DRIVER;
  else
    return FALSE;

  wstring sMsg = L"Connecting to " + (g_Settings.sComputer.length() > 0 ? g_Settings.sComputer : GetComputerName());
  ShowMessage(NULL, sMsg.c_str(), FMSG_NONE);
  
  sm->Reset(nServiceType);
  
  RedrawPanel(true);
  RedrawPanel(false);

  return TRUE;
}
Exemplo n.º 2
0
BOOL StopService(CServiceManager* sm)
{
  PanelInfo pi;
  ZeroMemory(&pi, sizeof(PanelInfo));
  pi.StructSize = sizeof(PanelInfo);
  if (Info.PanelControl(PANEL_ACTIVE, FCTL_GETPANELINFO, 0, &pi))
  {
    size_t CurItem = pi.CurrentItem;
    if (CurItem > 0)
    {
      size_t Size = Info.PanelControl(PANEL_ACTIVE,FCTL_GETPANELITEM, CurItem, 0);
      PluginPanelItem *PPI=(PluginPanelItem*)malloc(Size);
      if (PPI)
      {
        FarGetPluginPanelItem FGPPI = {Size, PPI};
        Info.PanelControl(PANEL_ACTIVE, FCTL_GETPANELITEM, CurItem, &FGPPI);

        size_t Index = FGPPI.Item->UserData;
        free(PPI);

        if (Index < sm->GetCount())
        {
          bool bStop = sm->StopService(Index);
          if (bStop)
          {
            ShowMessage(NULL, L"Stopping service...", FMSG_NONE);

            int nWait = 300;
            while (true)
            {
              SERVICE_STATUS_PROCESS QueryServiceStatus;
              if (sm->QueryServiceStatus(Index, QueryServiceStatus)
                && QueryServiceStatus.dwCurrentState == SERVICE_STOPPED)
              {
                break;
              }
              Sleep(100);
              nWait -= 1;
              if (!nWait)
                break;
            }
            UpdatePanel(true);
            RedrawPanel(true);
            RedrawPanel(false);
          }
          else
            ShowLastError(&MsgCantStopServiceGuid);
        }
      }
    }
  }

  return TRUE;
}
Exemplo n.º 3
0
void MpImageWindow::Redraw (void) // virtual
{ 
  RedrawPanel();                        // redraw background (if overloaded)

  if (! hold) ConvertToXImage(image);  // if not hold convert newly to XImage
  MapXImage();	     		        // then map to window

  if (GetFrameTotalWidth() > 0)         // redraw frame if necessary
    MpCanvas::RedrawFrame();
}
Exemplo n.º 4
0
void CXTPTaskPanelGroup::SetOffsetItem(int nScrollOffset, BOOL bUpdateScrollButtons /*= TRUE*/)
{
	nScrollOffset = nScrollOffset - (nScrollOffset % m_nItemsInRow);

	if (nScrollOffset > GetItemCount() - 1)
		nScrollOffset = GetItemCount() - 1;

	if (nScrollOffset < 0)
		nScrollOffset = 0;

	if (m_nScrollOffset != nScrollOffset)
	{
		m_nScrollOffset = nScrollOffset;

		if (bUpdateScrollButtons)
		{
			OnAnimate(0);
			m_pPanel->UpdateScrollButtons();
		}
		RedrawPanel(FALSE);
	}
}
Exemplo n.º 5
0
	virtual void _OnPaintPanel( wxPaintEvent& event )
	{
		wxClientDC dc(wxDynamicCast(event.GetEventObject(), wxWindow));
		RedrawPanel(&dc);
	}
Exemplo n.º 6
0
void CXTPTaskPanelGroup::SetExpandable(BOOL bExpandable)
{
	m_bExpandable = bExpandable;

	RedrawPanel();
}
Exemplo n.º 7
0
void CXTPTaskPanelGroup::SetSpecialGroup(BOOL bSpecial)
{
	m_bSpecial = bSpecial;
	RedrawPanel();
}