Example #1
0
void OptionsDlg::HandleCtrlTab()
{
    const int nNextIndex = (( m_Tab.GetCurSel() + 1 ) % m_Tab.GetItemCount() );
    m_Tab.SetCurSel( nNextIndex );
    m_Tab.SetCurFocus( nNextIndex );
    SwitchTab( nNextIndex );
}
Example #2
0
void tab_select_effect_bHandle(void* opaque, GEventGWinButton* event){
	struct tab_select_effect_t *tmp = (struct tab_select_effect_t*)opaque;
	uint32_t i;

	for(i = 0; i < EFFECT_NUM; i++){
		if ((event)->gwin == tmp->btn_effectTypes[i]){
            attachEffect(selectedEffectStage, i);
			SwitchTab(PARAM_TAB);
		}
	}

	if ((event)->gwin == tmp->btn_back){
        SwitchTab(PARAM_TAB);
	}

	return;
}
Example #3
0
BOOL OptionsDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();

	VERIFY( m_podPrcDetailsDlg.Create( IDD_DIALOG_PROCESS_DETAILS_OPTIONS, this ));
    //VERIFY( m_mdModuleDetailsDlg.Create( IDD_DIALOG_MODULE_DETAILS_DIALOG, this ));
    VERIFY( m_goGeneralOptionsDlg.Create( IDD_DIALOG_GENERALOPTIONS, this ));
    m_Tab.InsertItem( 0, _T( "Process" ));
    m_Tab.InsertItem( 1, _T( "General" ));

    // Reposition tab to fit to the client rectangle
    RepositionTab();
    PrepareDisplayRect();
    SwitchTab( 0 );

	return FALSE;
}
Example #4
0
BOOL TabbedDialog::DlgProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg) {
	case WM_INITDIALOG:
		return OnInitDialog (wParam);
	case WM_NOTIFY: {
		LPNMHDR pnmh = (LPNMHDR)lParam;
		if (pnmh->idFrom == tabId) {
			if (pnmh->code == TCN_SELCHANGE) SwitchTab ();
			return TRUE;
		}
		} return -1;
	case WM_COMMAND:
		switch (LOWORD(wParam)) {
		case IDCANCEL:
			return OnClose ();
		}
		break;
	}
	return oapiDefDialogProc (hWnd, uMsg, wParam, lParam);
}
Example #5
0
LRESULT MultiTab_Editor::onMouseMessage(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
  switch (uMsg)
  {
    case WM_LBUTTONDBLCLK:
      if (CURSES_INSTANCE && CURSES_INSTANCE->m_font_w && CURSES_INSTANCE->m_font_h)
      {
        const int y = ((short)HIWORD(lParam)) / CURSES_INSTANCE->m_font_h - m_top_margin;
        const int x = ((short)LOWORD(lParam)) / CURSES_INSTANCE->m_font_w + m_offs_x;
        WDL_FastString *fs=m_text.Get(y + m_paneoffs_y[m_curpane]);
        if (fs && y >= 0)
        {
          const char *url=fs->Get();
          
          while (NULL != (url = strstr(url,"http://")))
          {
            if (url != fs->Get() && isalnum(url[-1]))
            {
              url+=7;
            }
            else
            {
              const int soffs = (int) (url - fs->Get());
              char tmp[512];
              char *p=tmp;
              while (p < (tmp+sizeof(tmp)-1) &&
                    *url && *url != ' ' && *url != ')' && *url != '\t' && *url != '"' && *url != '\'' )
              {
                *p++ = *url++;
              }
              *p=0;
              if (strlen(tmp) >= 10 && x >= soffs && x<(url-fs->Get()))
              {
                ShellExecute(hwnd,"open",tmp,"","",0);
                break;
              }
            }
          }
        }
      }

    break;
    case WM_LBUTTONDOWN:
      if (CURSES_INSTANCE && CURSES_INSTANCE->m_font_w && CURSES_INSTANCE->m_font_h)
      {
        int x = ((short)LOWORD(lParam)) / CURSES_INSTANCE->m_font_w;
        int y = ((short)HIWORD(lParam)) / CURSES_INSTANCE->m_font_h;
        const int tabcnt=GetTabCount();
        if (y==0 && tabcnt>1)
        {
          int tsz=COLS/tabcnt;
          // this is duplicated in draw_top_line
          if (tsz>128)tsz=128;
          if (tsz<12) tsz=12;
          SwitchTab(x/tsz,false);

          return 1;
        }
      }
    break;
  }
  return WDL_CursesEditor::onMouseMessage(hwnd,uMsg,wParam,lParam);
}
Example #6
0
void MultiTab_Editor::OpenFileInTab(const char *fnp)
{
  // try to find file to open
  WDL_FastString s;        
  FILE *fp=NULL;
  {
    const char *ptr = fnp;
    while (!fp && *ptr)
    {          
      // first try same path as loading effect
      if (m_filename.Get()[0])
      {
        s.Set(m_filename.Get());
        const char *sp=s.Get()+s.GetLength();
        while (sp>=s.Get() && *sp != '\\' && *sp != '/') sp--;
        s.SetLen(sp + 1 - s.Get());
        if (s.GetLength())
        {
          s.Append(ptr);
          fp=fopenUTF8(s.Get(),"rb");
        }
      }

      // scan past any / or \\, and try again
      if (!fp)
      {
        while (*ptr && *ptr != '\\' && *ptr != '/') ptr++;
        if (*ptr) ptr++;
      }
    }
  }

  if (!fp) 
  {
    s.Set("");
    fp = tryToFindOrCreateFile(fnp,&s);
  }

  if (!fp && s.Get()[0])
  {
    m_newfn.Set(s.Get());

    if (COLS > 25)
    {
      int allowed = COLS-25;
      if (s.GetLength()>allowed)
      {
        s.DeleteSub(0,s.GetLength() - allowed + 3);
        s.Insert("...",0);
      }
      s.Insert("Create new file '",0);
      s.Append("' (Y/n)? ");
    }
    else
      s.Set("Create new file (Y/n)? ");

    m_state=UI_STATE_SAVE_AS_NEW;
    attrset(m_color_message);
    bkgdset(m_color_message);
    mvaddstr(LINES-1,0,s.Get());
    clrtoeol();
    attrset(0);
    bkgdset(0);
  }
  else if (fp)
  {
    fclose(fp);
    int x;
    for (x=0;x<GetTabCount();x++)
    {
      MultiTab_Editor *e = GetTab(x);
      if (e && !stricmp(e->GetFileName(),s.Get()))
      {
        SwitchTab(x,false);
        return;
      }
    }
    AddTab(s.Get());
  }
}
Example #7
0
int MultiTab_Editor::onChar(int c)
{
  if (!m_state && !SHIFT_KEY_DOWN && !ALT_KEY_DOWN && c =='W'-'A'+1)
  {
    if (GetTab(0) == this) return 0; // first in list = do nothing

    if (IsDirty())
    {
      m_state=UI_STATE_SAVE_ON_CLOSE;
      attrset(m_color_message);
      bkgdset(m_color_message);
      mvaddstr(LINES-1,0,"Save file before closing (y/N)? ");
      clrtoeol();
      attrset(0);
      bkgdset(0);
    }
    else
    {
      CloseCurrentTab();

      delete this;
      // context no longer valid!
      return 1;
    }
    return 0;
  }

  if (m_state == UI_STATE_SAVE_ON_CLOSE)
  {
    if (isalnum(c) || isprint(c) || c==27)
    {
      if (c == 27)
      {
        m_state=0;
        draw();
        draw_message("Cancelled close of file.");
        setCursor();
        return 0;
      }
      if (toupper(c) == 'N' || toupper(c) == 'Y')
      {
        if (toupper(c) == 'Y') 
        {
          if(updateFile())
          {
            m_state=0;
            draw();
            draw_message("Error writing file, changes not saved!");
            setCursor();
            return 0;
          }
        }
        CloseCurrentTab();

        delete this;
        // this no longer valid, return 1 to avoid future calls in onChar()

        return 1;
      }
    }
    return 0;
  }
  else if (m_state == UI_STATE_SAVE_AS_NEW)
  {
    if (isalnum(c) || isprint(c) || c==27 || c == '\r' || c=='\n')
    {
      if (toupper(c) == 'N' || c == 27) 
      {
        m_state=0;
        draw();
        draw_message("Cancelled create new file.");
        setCursor();
        return 0;
      }
      m_state=0;

      AddTab(m_newfn.Get());
    }
    return 0;
  }

  if ((c==27 || c==29 || (c >= KEY_F1 && c<=KEY_F10)) && CTRL_KEY_DOWN)
  {
    int idx=c-KEY_F1;
    bool rel=true;
    if (c==27) idx=-1;
    else if (c==29) idx=1;
    else rel=false;
    SwitchTab(idx,rel);

    return 1;
  }

  return WDL_CursesEditor::onChar(c);
}
Example #8
0
int TabbedDialog::OnInitDialog (WPARAM wParam)
{
	SwitchTab();
	return FALSE;
}
Example #9
0
void OptionsDlg::OnSelchangeTabOption(NMHDR* /*pNMHDR*/, LRESULT* pResult) 
{
	*pResult = 0;
    SwitchTab( m_Tab.GetCurSel() );
}
Example #10
0
void cMenu::MenuNavigation()
{
	GetCursorPos( &Cur );

	//Tabs.
	bool ActiveCheck = false;
	for (int i = 0; i < TabCount; i++)
	{
		if(MouseOver(Tabs[i].x, Tabs[i].y, Tabs[i].x + sizeoftab, Tabs[i].y + 20) == 2)
			SwitchTab(i);

		if(Tabs[i].Active)
		{
			ActiveName = Tabs[i].Name;
			ActiveCheck = true;
		}
	}

	if(!ActiveCheck)
		Tabs[0].Active = true;

	//Checks.
	for(int i = 0; i < CheckCount; i++)
	{
		if ( ActiveName != Checks[i].Parent )
			continue;

		if((MouseOver(Checks[i].x, Checks[i].y, Checks[i].x + 10 , Checks[i].y + 10) == 3) )
			Checks[i].Checked = 0;

		if((MouseOver(Checks[i].x, Checks[i].y, Checks[i].x + 10 , Checks[i].y + 10) == 2) )
			Checks[i].Checked = 1;

		if(Checks[i].Checked)
			*Checks[i].Variable = 1;
		else
			*Checks[i].Variable = 0;
	}

	//Sliders.
	for(int i = 0; i < SliderCount; i++)
	{

		if ( ActiveName != Sliders[i].Parent )
			continue;

		if(((MouseOver(Sliders[i].x, Sliders[i].y - 3, Sliders[i].x + 160 , Sliders[i].y + 6) == 2)) )
		{
			//Calculate value based on click position.
			int Value1 = (Cur.x - Sliders[i].x);
			float Value2 = ((float)Value1 / (float)120) * Sliders[i].MaxValue;

			if((int)Value2 > Sliders[i].MaxValue)
				Value2 = (float)Sliders[i].MaxValue;

			if((int)Value2 < 0)
				Value2 = 0.0f;


			Sliders[i].Value = (int)Value2;
			*Sliders[i].Variable = Sliders[i].Value;
		}
	}
	//TextBoxes.
	for(int i = 0; i < TextBoxCount; i++)
	{

		if ( ActiveName != TextBoxes[i].Parent )
			continue;

		if((MouseOver(TextBoxes[i].x, TextBoxes[i].y, TextBoxes[i].x + 100 , TextBoxes[i].y + 20) == 2) )
			TextBoxes[i].Focused = 1;

		if((MouseOver(TextBoxes[i].x, TextBoxes[i].y, TextBoxes[i].x + 100 , TextBoxes[i].y + 20) == 3) )
			TextBoxes[i].Focused = 0;

		if ( TextBoxes[i].Focused )
			cMenu::ThinkTextBox( i );

	}
}