/* Autor: Leandro Bernsmuller
Gerencia o dialogo que configura aspectos gerais do sistema */



#include <windows.h>
#include <windowsx.h>
#include "..\princip\defs.h"
#include "dlgconf.h"



// faz comunicacao entre caixa de dialogo e programa:
char
   *pszNOMEARQ;      // aponta espaco para nome do arquivo
int
   nTAMANHOJANELA;  // porcentagem do tamanho da janela principal



/* Altera a marca ao lado dos botoes, conforme qual tamanho
de janela que foi escolhido.
(chamado por ProcDlgConf)
**********************************************************/
void DefineTamanhoJanela ( HWND hWnd )
{
   // limpa todas as marcas
   SetDlgItemText ( hWnd, IDC_JANPEQUENA, " " );
   SetDlgItemText ( hWnd, IDC_JANMEDIA, " " );
   SetDlgItemText ( hWnd, IDC_JANGRANDE, " " );
   
   // poe o sinal ao lado do botao correto
   switch ( nTAMANHOJANELA ) {

      case PORPEQUENA:
         SetDlgItemText ( hWnd, IDC_JANPEQUENA, ">>>" );
         break;

      case PORMEDIA:
         SetDlgItemText ( hWnd, IDC_JANMEDIA, ">>>" );
         break;

      case PORGRANDE:
         SetDlgItemText ( hWnd, IDC_JANGRANDE, ">>>" );
         break;
   }
}



/* Usado para tratar mensagens na caixa de dialogo
**********************************************************/
BOOL FAR PASCAL ProcDlgConf ( HWND hWnd, UINT uMsg, 
                              WPARAM wParam, LPARAM lParam )
{
  switch ( uMsg ) {

    // botao clicado
    case WM_COMMAND:
      {

         // qual botao
         switch ( LOWORD ( wParam ) ) {

            case IDCANCEL:
               ::EndDialog ( hWnd, FALSE );
               break;

            case IDOK:

               // pega string editado
               GetDlgItemText ( hWnd, IDC_EDIT1, pszNOMEARQ, 299 );

               // termina dialogo
               ::EndDialog ( hWnd, TRUE );
               break;

            case IDC_BUTTON1:
               nTAMANHOJANELA = PORPEQUENA;
               break;

            case IDC_BUTTON3:
               nTAMANHOJANELA = PORMEDIA;
               break;

            case IDC_BUTTON4:
               nTAMANHOJANELA = PORGRANDE;
               break;
         }

         // qual o personagem selecionado
         DefineTamanhoJanela ( hWnd );
      }
      break;

    case WM_INITDIALOG:
      {
         // define qual o tamanho de janela escolhido
         DefineTamanhoJanela ( hWnd );
         
         // poe nome arquivo
         SetDlgItemText ( hWnd, IDC_EDIT1, pszNOMEARQ );

         return TRUE;
      }
      break;
  }

  return FALSE;
}
         


/* Faz o dialogo
hWnd - janela pai
szNomeArq - nome do arquivo
dwTamanhoJanela - tamanho da janela em %, sobre cada eixo
**********************************************************/
void FazDialogo_Configura ( HWND hWnd, char* szNomeArq, int& nPorcentagemUsoJanela )
{
   pszNOMEARQ = szNomeArq;
   nTAMANHOJANELA = nPorcentagemUsoJanela;

   if ( ::DialogBox ( (HINSTANCE) GetWindowLong ( hWnd, GWL_HINSTANCE ),
                 MAKEINTRESOURCE ( IDD_DIALOG2 ), hWnd,
                 (DLGPROC) ProcDlgConf ) ) {

      nPorcentagemUsoJanela = nTAMANHOJANELA;
   }
}
