{--------------------------------------------------------}
{    Programa WordWtil
{    Interface com o Word
{    Biblioteca de opcoes do menu de opcoes do
{ comando de pagina
{--------------------------------------------------------}

unit WuMeCoPa;

interface

uses dvcrt, winprocs, strings, WuUtil, wintypes, dvwin, dvmacro,
     WuVars, WuMensa;

Procedure menuComandoDePagina;

implementation

{-------------------------------------}
procedure quebra; { quebra de pagina  }
{-------------------------------------}
begin
   trocaJanela (jan_Prog);

   enviaCarac (VK_END);

   playInit (300);
   playVirtKey (VK_RETURN, true, false, false, 1);
   playStart;
   while  playIsActive do;
   delay (50);

   trocaJanela (minha_Jan);

   mensagem ('wupaqu',1);     { Pagina quebrada }

end;

{-----------------------------------------------------------}
procedure juntar;    { junta a pagina atual com a posterior }
{-----------------------------------------------------------}

begin

   trocaJanela (jan_Prog);

   playInit (300);
   playVirtKey (ord ('Y'), true, false, false, 1);
   playStart;
   while  playIsActive do;
   delay (50);

   putClipBoard ('+1');

   playInit (300);
   playVirtKey (VK_INSERT, false, true, false, 1);
   playStart;
   while  playIsActive do;
   delay (50);

   playInit (300);
   playVirtKey (ord ('I'), false, false, true, 1);
   playStart;
   while  playIsActive do;
   delay (50);

   playInit (300);
   playVirtKey (VK_F4, false, false, true, 1);
   playStart;
   while  playIsActive do;
   delay (50);


   playInit (300);
   playVirtKey (VK_BACK, false, false, false, 1);
   playStart;
   while  playIsActive do;
   delay (50);

   trocaJanela (minha_Jan);

   mensagem ('wupaju',1);    { paginas juntadas }

end;

{-----------------------------}
procedure opcaoDePaginaAjuda;
{-----------------------------}
begin
   mensagem ('wumecoq',1);  { Q - quebra de linha }
   mensagem ('wumecop',1);  { P - quebra de pagina }
   mensagem ('wumecoa',1);  { A - adiciona a linha atual a anterior }
   mensagem ('wumecoj',1);  { J - junta a pagina atual com a posterior }
   mensagem ('wumecot',1);  { T - troca arquivo }
   while sintFalando do;
end;

{---------------------------------------------------------------------}
procedure quebraLinha;    { quebra a linha na posicao atual do cursor }
{---------------------------------------------------------------------}
var
   i :integer;
begin
  trocaJanela (Jan_Prog);
  enviaCarac (VK_HOME);

  (* posiciona o cursor na posicao desejada *)
  for i := 0 to (sintCursorX - 2) do
     enviaCarac (VK_RIGHT);

  enviaCarac (VK_RETURN);  (* quebra a linha *)

  trocaJanela (Minha_Jan);

  mensagem ('wuliqu',1);    { Linha quebrada }

end;


{-----------------------------------------------------------------}
procedure juntaLinha;  { junta a linha atual com a linha anterior }
{-----------------------------------------------------------------}
begin
   trocaJanela (Jan_Prog);
   enviaCarac  (VK_HOME);
   enviaCarac  (VK_BACK);
   trocaJanela (Minha_Jan);
   mensagem ('wuliju',1);   { Linhas Juntadas }

end;

{-----------------------------------------------------------------}
procedure trocarArquivo;  { troca por um novo arquivo caso exista }
{-----------------------------------------------------------------}
var
   janela:char;
begin
   mensagem ('wunuar',0);   { Qual o numero do arquivo? }
   janela := sintReadKey;
   writeln (janela);
   trocaJanela (Jan_Prog);

   playInit (300);
   playVirtKey (ord ('J'), false, false, true, 1);
   playStart;
   while  playIsActive do;
   delay (50);

   enviaCarac (ord (janela));
   trocaJanela (Minha_Jan);

   mensagem ('wutrar',0);    { Troquei de arquivo }

end;


{-----------------------------------------------------}
procedure menuComandoDePagina;   { comandos de pagina }
{-----------------------------------------------------}
var
   op:char;

label retorno;
begin

retorno:

   textcolor (WHITE); textbackground (RED);
   mensagem ('wumecoop',0);  { menu Comando de Pagina - qual sua opcao? }
   textcolor (7); textbackground (BLACK);

   op := sintReadKey;
   writeln (op);
   if op = #$0 then
      op := ReadKey;

   if op = F9 then while keypressed do;

   case upcase (op) of
      'Q': begin
              if modulo = 'edicao' then quebralinha (* quebra uma linha *)
              else mensagem ('wuesexed',1);   { Esse comando so pode ser executado em modulode edicao }
           end;
      'P': begin
              if modulo = 'edicao' then quebra (* quebra de pagina *)
              else mensagem ('wuesexed',1);   { Esse comando so pode ser executado em modulode edicao }
           end;
      'J': begin
              if modulo = 'edicao' then juntar  (* junta a pagia atual com a seguinte *)
              else mensagem ('wuesexed',1);   { Esse comando so pode ser executado em modulode edicao }
           end;
      'A': begin
              if modulo = 'edicao' then juntaLinha (* junta a linha com a anterior *)
              else mensagem ('wuesexed',1);   { Esse comando so pode ser executado em modulode edicao }
           end;
      ESC: mensagem ('wucoca',1);   { Comando cancelado. }
      'T': trocarArquivo;  (* mudanca para o arquivo desejado *)
      F1 : begin    (* ajuda do sistema *)
              opcaoDePaginaAjuda;
              goto retorno;
           end;
      else
         mensagem ('wuopin',1);    { Opcao invalida. }
   end;
end;

end.