notes2-team Mailing List for Notes (Page 2)
Brought to you by:
andersonrb
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
(11) |
Apr
(21) |
May
(57) |
Jun
(79) |
Jul
(76) |
Aug
(24) |
Sep
(58) |
Oct
(187) |
Nov
(134) |
Dec
(81) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(30) |
Feb
(42) |
Mar
(60) |
Apr
(23) |
May
(6) |
Jun
(32) |
Jul
(14) |
Aug
(10) |
Sep
(6) |
Oct
(6) |
Nov
(4) |
Dec
(2) |
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2006 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(6) |
Dec
(3) |
2007 |
Jan
(2) |
Feb
(2) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Anderson R. B. <and...@po...> - 2004-09-09 04:05:56
|
ROADMAP e TAREFAS - rumo ao Beta! =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Previs=F5es =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Preview do beta ........ 01 Outubro ----- feature freeze!!! --------------- Beta ................... 20 Outubro Release candidate ...... 11 Novembro Notes 2004 final ....... 18 Novembro Notes 2004 em Ingl=EAs ... 15 Dezembro (Niver do Notes!) =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D A pr=F3xima grande vers=E3o do Notes ser=E1 a vers=E3o Beta onde todas as features programadas para o Notes 2004 dever=E3o estar prontas. Dado a quantidade de features que vem sendo implementadas de um alpha para outro, mais um alpha n=E3o parece ser necess=E1rio. Ap=F3s o lan=E7amento do Beta entraremos em "feature freeze", ou seja, passaremos algumas semanas apenas corrigindo bugs para garantir que a vers=E3o est=E1vel fique o mais est=E1vel poss=EDvel. Para n=E3o atrazarmos ainda mais o lan=E7amento do 2004, deveremos adotar uma pol=EDtica um pouco chata: n=E3o deveremos colocar nos planos para o 2004 mais nenhuma feature. Os pedidos de features dos usu=E1rios devem passar a ser colocados nos planos das vers=F5es que vir=E3o ap=F3s o 2004. No esquema acima a vers=E3o em ingl=EAs (internacional) do Notes foi separada da vers=E3o brasileira, pois como n=E3o h=E1 ningu=E9m trabalhando ativamente na tradu=E7=E3o do Notes no momento seria in=FAtil agendar as duas vers=F5es para a mesma data. A parte boa =E9 que se tudo der certo, podemos aproveitar para lan=E7ar a vers=E3o internacional no anivers=E1rio do Notes :) Lembrando que as datas acima s=E3o apenas "previs=F5es". N=F3s temos poucos desenvolvedores: se algu=E9m sair ou resolver n=E3o contribuir muito para o beta facilmente poderemos ter longos "atrasos". And shit happens! N=E3o sei o quanto novos programadores que entrarem no meio dos trabalhos para o beta poder=E3o ajudar (mas se eles pudessem tentar corrigir os bugs j=E1 ir=EDamos um pouco mais r=E1pido). TAREFAS ------- As tarefas est=E3o todas no bugtracker, mas coloco elas aqui para dar uma dica ou outra sobre cada uma delas: OBS: o que eu andarei fazendo para o beta --------------------------------------------- Para o beta eu estarei trabalhando em duas features que consumir=E3o quase todo o meu tempo: o suporte a projetos (http://notes.codigolivre.org.br/bug/?do=3Ddetails&id=3D11) e a start page (http://notes.codigolivre.org.br/bug/?do=3Ddetails&id=3D12= ). OBS 2: features ainda n=E3o terminadas do alpha 3 ------------------------------------------------ Quem deixou uma feature incompleta no Alpha 3, por favor, lembre de termin=E1-la no beta ou ao menos pedir para outra pessoa termin=E1-la. Features importantes e complicadas ----------------------------------- Quem quiser dar uma contribui=E7=E3o importante para o beta, conhece bem o Notes e tem 'aquilo' entre as pernas pode se aventurar nas seguintes tarefas: * Suporte a Unicode (UTF-16) e UTF-8 URL: http://notes.codigolivre.org.br/bug/?do=3Ddetails&id=3D19 Coment=E1rio: o editor do Notes n=E3o suporta unicode. A id=E9ia =E9 converter de unicode/utf-8 para ANSI ao abrir e salvar o arquivo. Unicode/UTF-8 s=E3o assuntos cabeludos, e a=ED est=E1 a maior dificuldade da tarefa. * Notes Packages URL: http://notes.codigolivre.org.br/bug/?do=3Ddetails&id=3D13 Coment=E1rio: o Jonas iniciou a cria=E7=E3o de um formato de compress=E3o chamado Notes Packages (NPK). Este =E9 um formato que usa a zlib para comprimir os arquivos, mas inclu=ED informa=E7=F5es extras no pacote para que o pacote possa ser facilmente instalado no Notes (vide pr=F3xima tarefa). Basicamente a parte de compress=E3o est=E1 funcionando (vide NotesPackage.pas) por=E9m a defini=E7=E3o de que informa=E7=F5es guardar no pacote =E9 que ainda n=E3o foi bem feita. * Importa=E7=E3o e exporta=E7=E3o de macros, suporte a linguagens, etc. URL: http://notes.codigolivre.org.br/bug/?do=3Ddetails&id=3D23 Coment=E1rio: o Notes hoje =E9 altamente customiz=E1vel: voc=EA pode criar suporte a novas linguagens, novos templates, items para a biblioteca, macros, etc. Por=E9m se voc=EA quiser compartilhar estas customiza=E7=F5es com o resto do mundo, o Notes n=E3o oferece nenhuma maneira f=E1cil e r=E1pida de fazer isto. A id=E9ia era guardar estas customiza=E7=F5es em NPK que pudesse depois ser muito facilmente instalado por usu=E1rios de qualquer "n=EDvel intelectual" (o melhor seria que um dublo-clique no arquivo no explorer fizesse tudo automaticamente, talvez mostrando uma op=E7=E3o ou outra apenas). A dificuldade desta tarefa est=E1 em bolar um esquema que importa=E7=E3o/exporta=E7=E3o das customiza=E7=F5es citadas que a minha av=F3 consiga usar :) Features importantes mas n=E3o t=E3o complicadas ----------------------------------------------- * Internacionaliza=E7=E3o do c=F3digo URL: http://notes.codigolivre.org.br/bug/?do=3Ddetails&id=3D22 Coment=E1rio: nos =FAltimos tempos desrobrimos usu=E1rios do Notes na Fran=E7a, China e Argentina - gente que est=E1 usando o Notes em portugu=EAs, apesar de n=E3o saber nem dizer "oi" na nossa l=EDngua e que sonha todo dia que algu=E9m vai colocar o Notes na l=EDngua deles, ou ao menos fazer uma vers=E3o em ingl=EAs. Imagine-se usando um editor que est=E1 todo em Chin=EAs!!! Bom, por causa disso o Notes ganhou uma classe (TNotesTranslation) para fazer internacionaliza=E7=E3o do c=F3digo. S=F3 falta agora usar esta classe em todas as Units para deixar o Notes pronto para ser traduzido (o uso da TNotesTranlation foi explicado nos tutoriais que aindei escrevendo sobre o c=F3digo do Notes). * Implementar op=E7=F5es de inicializa=E7=E3o URL: http://notes.codigolivre.org.br/bug/?do=3Ddetails&id=3D26 Coment=E1rio: a id=E9ia =E9 deixar o usu=E1rio poder escolher exatamente o que o Notes deve fazer ao iniciar. Existem duas a=E7=F5es que o Notes poderia ter: mostrar a startpage ou reabrir os =FAltimos arquivos que estavam sendo editados. O ideal seria deixar o usu=E1rio escolher quando o Notes deve fazer essas a=E7=F5es: sempre; nunca; perguntar se deve fazer; ou sempre que nada mais estiver aberto. * Painel ShellExplorer URL: http://notes.codigolivre.org.br/bug/?do=3Ddetails&id=3D3 Coment=E1rio: o Lucas Eur=EDpides (novo na equipe) tinha ficado de implementar o painel que serviria de gerenciador de arquivos, mas pelos meus =FAltimos contatos com ele, ele anda super-ocupado. Como =E9 uma feature important=EDssima para muitos usu=E1rios seria interessante algu=E9m assumir a tarefa no lugar dele para n=E3o corrermos o risco de ficarmos sem este painel no 2004. Lembro a quem for implementar que n=F3s vamos portar o Notes para o linux logo, ent=E3o n=E3o sei se =E9 uma boa usar as fun=E7=F5es da API do windows ou uma GUI muito ligada ao modo que o windows funciona (linux n=E3o possu=ED drives chamados C:, D:, etc., s=F3 para dar um exemplo da bagun=E7a). * Associa=E7=F5es de arquivo URL: http://notes.codigolivre.org.br/bug/?do=3Ddetails&id=3D20 Coment=E1rio: a id=E9ia =E9 usar um checklistbox que mostrar=E1 os tipos de arquivo e suas respectivas extens=F5es. O usu=E1rio poderia marcar/desmarcar o tipo de arquivo para associar/desassociar o tipo de arquivo com o Notes. Uma id=E9ia interessante =E9 termos =EDcones diferentes para cada tipo de arquivo. Features importantes e f=E1ceis de implementar ----------------------------------------------- Para quem est=E1 chegando agora ao Notes ou est=E1 com menos tempo: * Backup e salvamento autom=E1tico URL: http://notes.codigolivre.org.br/bug/?do=3Ddetails&id=3D18 Coment=E1rio: n=E3o deve ser complicado de implementar, mas requer algum conhecimento sobre o funcionamento interno do Notes. O salvamento em intervalos pode ser implementado com um timer e chamando a a=E7=E3o "salvar todos" no OnTimer. O backup poderia ser implementado modificando a fun=E7=E3o de salvamento do TNotesEditorTab para que salve um backup sempre que for chamada se o usu=E1rio tiver a op=E7=E3o ativada. * Abrir arquivo/url sob o cursor URL: http://notes.codigolivre.org.br/bug/?do=3Ddetails&id=3D15 Coment=E1rio: o problema maior est=E1 em achar o arquivo/url sob o cursor. Talvez seja uma boa usar express=F5es regulares para isto. * Comandos de Zoom URL: http://notes.codigolivre.org.br/bug/?do=3Ddetails&id=3D27 Coment=E1rio: basta aumentar/diminuir o tamanho da fonte do editor e invalid=E1-lo. Parece f=E1cil :) Opni=F5es?! T+ Anderson |
From: Anderson R. B. <and...@po...> - 2004-09-05 07:10:35
|
Ol=E1 pessoal, =E9 com orgulho que comunico que o Alpha 3 do Notes 2004 acaba de ser lan=E7ado e j=E1 pode ser baixado do nosso site: http://notes.codigolivre.org.br Com orgulho, n=E3o s=F3 por causa das novas features... http://notes.codigolivre.org.br/releases/2004alpha3.html ...mas tamb=E9m por todo o empenho da equipe nestes =FAltimos meses. Foi a primeira vez que vi pessoas passando madrugadas em claro para que a feature em que estava trabalhando pudesse ficar pronta a tempo de ser inclu=EDda em um alpha. Foi a primeira vez tamb=E9m que vi gente fazer, refazer milhares de vezes o mesmo c=F3digo, imagem, texto, etc. at=E9 que este chegasse a perfei=E7=E3o. Este com certeza =E9 um release muito especial. Sinto orgulho de poder trabalhar com voc=EAs! Viva o Notes! Viva a Equipe do Notes! Abra=E7o a todos, Anderson R. Barbieri |
From: Anderson R. B. <and...@po...> - 2004-08-30 06:26:55
|
Ol=E1 pessoal, M=E1s not=EDcias: um lammer desgra=E7ado tentou infectar o f=F3rum do Not= es com=20 o v=EDrus Wscript/Zulu/taille agora a pouco. N=E3o se sabe o porque do ataque, mas como eu disse l=E1 n= o=20 f=F3rum, =E9 triste ver um programador tentar atrapalhar um projeto que=20 tenta ajudar os programadores. Para quem quiser expressar os seus "agradecimentos" ao lammer, o post=20 est=E1 em http://notes.codigolivre.org.br/forum/read.php?f=3D1&i=3D110&t=3D110 Abra=E7o, Anderson |
From: Anderson R. B. <and...@po...> - 2004-08-27 04:31:45
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title>ManipulandoOsEditores</title> </head> <body> <big><big><span style="font-weight: bold;">Uma viagem aos sources do Notes - parte III</span><br style="font-weight: bold;"> <span style="font-weight: bold;">Implementando novos comandos no editor</span></big></big><br> <br> Na terceira parte da nossa viagem aos sources do Notes, finalmente vamos explorar o editor! Melhor ainda, o texto inteiro estará "baseado em fatos reais" - enquanto escrevo isto, estamos há poucos dias do lançamento do alpha 3 do Notes 2004 e eu estarei implementando no Notes o que estarei ensinando você a fazer aqui.<br> <br> A feature que vamos implementar será uma bem conheciada dos editores de código: permitir ao usuário converter tabs para espaços e vice-versa. Criaremos duas novas ações de formatação do código que permitem ao usuário fazer isto. Na parte II você aprendeu a criar ações e colocá-las no menu, então não preciso explicar novamente como se faz isto. Eu criei duas ações ("actEditFormatSpacesToTabs" e "actEditFormatTabsToSpaces") e coloquei elas em Editar >> Formatar, junto com outras ações que estão ligadas a formatação do código.<br> <br> Após criadas as ações e os items dos menus, lembrei-me que tínhamos que desabilitar estas ações quando nada estivesse selecionado ou quando o texto fosse readonly. Ainda bem que o Notes, já tem como fazer isto de maneira bem fácil, bastou adicionar o código a seguir no "FormCreate" do formulário principal e estava pronto:<br> <br> <table style="width: 100%; text-align: left; background-color: rgb(243, 243, 243);" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"> <pre>// Habilita as ações apenas quando houver seleção e o texto não for readonly<br>ActionMan.ControlAction(actEditFormatTabToSpaces, [ecHasSelection, ecNotReadonly]);<br>ActionMan.ControlAction(actEditFormatSpacesToTabs, [ecHasSelection, ecNotReadonly]); </pre> </td> </tr> </tbody> </table> <br> Olhando o código da unit frm_Princ (que é onde está o form principal) vemos que as ações do menu editar não estão implementadas nela e sim em um objeto chamado "tabs". Este é um objeto da classe "TNotesTabsManager", o gerenciador de tabs do Notes. O objeto tabs permite criar novas tabs/editores, fechar tabs, etc. Há algum tempo o tamanho da Unit "frm_Princ.pas" era gigantesco e por isso refactorings foram feitos distribuindo todo aquele código para novas Units, como por exemlo a "NotesTabsManager.pas". Bom, olhando está unit descobrimos mais uma coisinha: na verdade também não é nela que os métodos estão implementados! Na verdade tudo que ela faz é verificar se um editor está ativo e repassar para o editor ativo a ação pedida lá no form principal. <br> <br> <span style="font-style: italic;">- Oh God! Para que esse passa-repassa de tarefas de uma unit para outra e para outra? Parece até fila do SUS! Isso vai deixar tudo mais lento!</span><br> <br> Em teoria, vai ficar mais lento. Na prática, o usuário nunca, nunca conseguirá perceber a diferença. Chamadas de métodos com até dois parâmetros são chamados sem precisar acessar a memória, pois os parâmetros são movidos diretamente para os registradores do processador, o que é absurdamente rápido. Se você não confia em mim, pergunte para qualquer guru de Delphi. Isto tudo tem uma vantagem, apesar de dar um poquinho mais de trabalho para nós: esse passa e repassa de tarefas cria layers entre um pedaço e outro do programa o que evita que você tenha que reescrever muito código para substituir um dos componentes (por exemplo, se fóssemos trocar de controle de edição, provavelmente não teríamos que reescrever muita coisa).<br> <br> Bom, então vamos para a Unit "NotesEditorTab.pas", pois é lá que toda a diversão acontece! Logo você vai perceber que opções semelhantes a que estamos implementando estão na classe TNotesEditorTab... não precisa ser um gênio pra adivinhar que é nela que deveremos colocar nossos novos métodos, não?! Colocamos o código abaixo na parte pública da classe:<br> <br> <table style="width: 100%; text-align: left; background-color: rgb(243, 243, 243);" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;">{ Converte tabs para espaços }<br> procedure TabsToSpaces;<br> { Converte espaços para tabs }<br> procedure SpacesToTabs;<br> </td> </tr> </tbody> </table> <br> Pronto. Se você nunca escreveu classes/componentes no Delphi, provavelmente não sabe, mas o próximo passo pode ser dado pelo editor do Delphi. Use a tecla de atalho Ctrl+Shift+C para que o delphi crie o código inicial dos nossos métodos:<br> <br> <table style="width: 100%; text-align: left; background-color: rgb(243, 243, 243);" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;">procedure TNotesEditorTab.SpacesToTabs;<br> begin<br> <br> end;<br> <br> procedure TNotesEditorTab.TabsToSpaces;<br> begin<br> <br> end;<br> </td> </tr> </tbody> </table> <br> A implementação dos métodos é bem simples:<br> <br> <table style="width: 100%; text-align: left; background-color: rgb(243, 243, 243);" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;">procedure TNotesEditorTab.SpacesToTabs;<br> var<br> S: string;<br> begin<br> if fEditor.SelAvail then<br> begin<br> S:= StringOfChar(#32, fEditor.TabWidth);<br> fEditor.SelText:= StringReplace(fEditor.SelText, S, #9, [rfReplaceAll]);<br> end;<br> end;<br> <br> procedure TNotesEditorTab.TabsToSpaces;<br> var<br> S: string;<br> begin<br> if fEditor.SelAvail then<br> begin<br> S:= StringOfChar(#32, fEditor.TabWidth);<br> fEditor.SelText:= StringReplace(fEditor.SelText, #9, S, [rfReplaceAll]);<br> end;<br> end;<br> </td> </tr> </tbody> </table> <br> Para acessar o editor mesmo, usamos o campo fEditor (variável). O Notes usa o SynEdit como componente de edição. O TNotesEditor serve apenas como uma classe que agrupa uma Tab e um SynEditor (Editor + Tab = NotesEditorTab). Para aprender a usar o SynEdit não há outro modo senão dar uma olhada no código dele - infelizmente ele não vem com documentação alguma. (Porém alguns métodos e propriedades são bem semelhantes ao do TMemo e do TRichEdit.) A propriedade SelText que você vê acima permite manipular o texto selecionado. O que fazemos é criar uma string com espaços do tamanho de um caracter tab e trocar esta string pelo caracter tab ou vice-versa.<br> <br> Implementado isto, temos que implementar métodos na classe TNotesTabsManager que chamem nossos novos métodos. Eles ficariam assim:<br> <br> <table style="width: 100%; text-align: left; background-color: rgb(243, 243, 243);" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;">{ Converte tabs para espaços }<br> procedure EditorTabsToSpaces(Sender: TObject);<br> { Converte espaços para tabs }<br> procedure EditorSpacesToTabs(Sender: TObject);<br> </td> </tr> </tbody> </table> <br> Note que temos uma novidade - o parâmetro Sender. Ele é necessário por que assinalaremos nossos métodos ao evento OnExecute das ações que criamos (lembra delas?). Use o truque do Ctrl+Shift+C e vejamos a implementação:<br> <br> <table style="width: 100%; text-align: left; background-color: rgb(243, 243, 243);" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;">procedure TNotesTabsManager.EditorSpacesToTabs(Sender: TObject);<br> begin<br> if ActiveEditorTab <> nil then<br> ActiveEditorTab.SpacesToTabs;<br> end;<br> <br> procedure TNotesTabsManager.EditorTabsToSpaces(Sender: TObject);<br> begin<br> if ActiveEditorTab <> nil then<br> ActiveEditorTab.TabsToSpaces;<br> end;<br> </td> </tr> </tbody> </table> <br> Nós chamamos a função "ActiveEditorTab" para descobrirmos se há um editor ativo (se não houver, ela retornará nil). Depois usamos ela para acessar o TNotesEditorTab que está ativo e assim chamar os métodos recém-criados nesta classe. Esta função ActiveEditorTab pode ser acessada em qualquer unit do Notes que tenha no uses a unit "NotesGlobals".<br> <br> Estamos quase lá! Agora só precisamos associar estes novos méotodos ao evento OnExecute dentro do método Initialize (que é chamado quando o Notes está carregando mas já está visível ao usuário) do form principal:<br> <br> <table style="width: 100%; text-align: left; background-color: rgb(243, 243, 243);" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"> actEditFormatTabToSpaces.OnExecute:= tabs.EditorTabsToSpaces;<br> actEditFormatSpacesToTabs.OnExecute:= tabs.EditorSpacesToTabs;<br> </td> </tr> </tbody> </table> <br> E por hoje era só pessoal! Para complementar o que você aprendeu hoje, dê uma olhada em todas estas units por quais passamos, principalmente nas partes comentadas :)<br> Anderson<br> <br> </body> </html> |
From: Anderson R. B. <and...@po...> - 2004-08-26 03:33:17
|
Bom, vejam o screen antes de tudo, hehhehe Eu coloquei no Notes um controle para que as macros possam fazer code=20 completition (o que alguns conhecem como IntelliSense). N=E3o planejo colocar nada no=20 Notes pra fazer code completition por padr=E3o no momento (mais para frente, com=20 certeza, mas =E9 algo pra ser estudado com muito detalhe). Por=E9m as macros podem cri= ar=20 seu pr=F3prio intellisense do jeito que o usu=E1rio quiser. A que voc=EAs v=EAem no screen, apenas busca por palavras que j=E1 exista= m no=20 Texto (o que j=E1 =E9 increvilmente =FAtil). Outra possibilidade seria carregar= um=20 arquivo de api como fazem alguns editores, mas =E9 t=E3o rid=EDculo de escrever... dlgs.codeCompletition( os.fileGetContents( [nome do arquivo de api ] ) ); ... que nem tem gra=E7a, hahhaha Abra=E7o, Anderson |
From: John S. <jc...@ho...> - 2004-08-21 21:05:39
|
I'd put money on the cool dress and dapper groom. In fact I think you'll make the most beautiful couple I'll have ever seen. I'll even bet that I'll cry from joy. And that will be embarrassing and http://geocities.yahoo.com.br/memailsbr/emailsbrasil.htm http://geocities.yahoo.com.br/memailsbr/emailsdobrasil.htm http://geocities.yahoo.com.br/memailsbr/emailslistagem.htm http://geocities.yahoo.com.br/memailsbr/emailsvalidados.htm People meet me and think I'm pretty smart. I know really minor things about lots of topics, and that seems to translate into "I am not an idiot." most things, but I can remember trivia" like, for example, what "trivia" means. http://m.domaindlx.com/promotionclub/listas.htm http://m.domaindlx.com/promotionclub/malagolistum.htm http://m.domaindlx.com/promotionclub/programasdespam.htm What it should translate into is "I really don't understand http://m.domaindlx.com/promotionclub/promocaoemails.htm http://geocities.yahoo.com.br/memailsbr/emailsvalidos.htm http://m.domaindlx.com/promotionclub/atualizadas.htm http://m.domaindlx.com/promotionclub/emailsbrasil.htm The book isn't about baseball, but I can only write while I'm watching baseball. |
From: andreithomaz <and...@bo...> - 2004-08-19 23:06:54
|
bem legal o logo do butracker, parab=E9ns andr=E9! []'s andrei ---------- In=EDcio da mensagem original ----------- De: not...@li... Para: not...@li... Cc: Data: Sat, 14 Aug 2004 19:47:04 -0300 Assunto: [Notes2-team] Bugtracker no ar > > Ol=E1 noteiros, > > O Andr=E9 botou no ar um bugtracker para o Notes. Ele j=E1 est=E1 100%, > funcional e pode ser acessado aqui: http://notes.codigolivre.org.br/bug/ > > O logo genial que voc=EAs v=E3o ver no topo =E9 do Paulo Davan=E7o. O Paulo =E9 um > novo integrande da equipe de marketing/design e aposto que voc=EAs ainda > v=E3o ver muita coisa desenhada por ele aparecendo no Notes (que bom pra > n=F3s, hehhehe). > > O sistema usado =E9 o flyspray (flyspray.rocks.cc), com bilh=F5es de altera=E7=F5es > feitas pelo Andr=E9 para que pudesse funcionar no c=F3digo livre. O pessoal > que est=E1 na equipe a mais tempo vai lembrar dele, j=E1 que =E9 o mesmo sistema > que us=E1vamos antes do C=F3digo Livre fazer o imenso favor de perder todo > o nosso banco de dados... > > Em tempo: j=E1 passei os bugs do arquivo TODO.txt para o bugtracker. Falta > s=F3 as pessoas se cadastrarem (hint! hint!). > > Abra=E7o, > Anderson > > > > ----------------------------------------------------- -- > SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media > 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 > Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift. > http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 > _______________________________________________ > notes2-team mailing list > not...@li... > https://lists.sourceforge.net/lists/listinfo/notes2- team > -- RGB Design Digital - Andrei R. Thomaz www.rgbdesigndigital.com.br=0A =0A_______________________________________= ___________________________________=0AAcabe com aquelas janelinhas que pu= lam na sua tela.=0AAntiPop-up UOL - =C9 gr=E1tis!=0Ahttp://antipopup.uol.= com.br/=0A |
From: Anderson R. B. <and...@po...> - 2004-08-14 22:49:32
|
Ol=E1 noteiros, O Andr=E9 botou no ar um bugtracker para o Notes. Ele j=E1 est=E1 100%, funcional e pode ser acessado aqui: http://notes.codigolivre.org.br/bug/ O logo genial que voc=EAs v=E3o ver no topo =E9 do Paulo Davan=E7o. O Pau= lo =E9 um novo integrande da equipe de marketing/design e aposto que voc=EAs ainda v=E3o ver muita coisa desenhada por ele aparecendo no Notes (que bom pra n=F3s, hehhehe). O sistema usado =E9 o flyspray (flyspray.rocks.cc), com bilh=F5es de alte= ra=E7=F5es feitas pelo Andr=E9 para que pudesse funcionar no c=F3digo livre. O pesso= al que est=E1 na equipe a mais tempo vai lembrar dele, j=E1 que =E9 o mesmo = sistema que us=E1vamos antes do C=F3digo Livre fazer o imenso favor de perder tod= o o nosso banco de dados... Em tempo: j=E1 passei os bugs do arquivo TODO.txt para o bugtracker. Falt= a s=F3 as pessoas se cadastrarem (hint! hint!). Abra=E7o, Anderson |
From: Anderson R. B. <and...@po...> - 2004-08-13 23:02:19
|
var regex= new RegExp(''); var hassupport = true; switch (editor.getFileType().toLowerCase()){ case 'c-c++' : regex.compile('^[a-zA-Z_]+[^;\\(\\)]*[a-zA-Z_]+\\([^;\\n/\\{]*', 'gm'); break; case 'delphi' : regex.compile('^[ \\t]*(function|procedure|constructor|destructor)[ \\t].*[a-zA-Z_]+[^;\\n/\\{]*', 'gim'); break; case 'perl' : regex.compile('^[ \\t]*sub[ \\t][^;\\n\\]*', 'gm'); break; case 'php' : regex.compile('^[ \\t]*function[ \\t].*\\([^;\\n/\\{]*', 'gm'); break; case 'javascript' : regex.compile('^[ \\t]*function[ \\t].*\\([^;\\n/\\{]*', 'gm'); break; case 'java' : regex.compile('^[ \\t]*(public|protected|private|static)[ \\t].*\\([^;\\n/\\{]*', 'gm'); break; case 'jsp' : regex.compile('^[ \\t]*(public|protected|private|static)[ \\t].*\\([^;\\n/\\{]*', 'gm'); break; case 'c#' : regex.compile('^[ \\t]*(public|protected|private|static)[ \\t].*\\([^;\\n/\\{]*', 'gm'); break; case 'asp' : regex.compile('^[ \\t]*(public|private)?[ \\t]*(sub|function|property|class)[ \\t].*', 'gim'); break; case 'visualbasic' : regex.compile('^[ \\t]*(public|private)?[ \\t]*(sub|function|property|class)[ \\t].*[a-zA-Z_]+[^\\n]*', 'gim'); break; default : hassupport = false; } if (hassupport){ var txt= String(editor.getText()); var funcs = txt.match(regex); if (funcs != null && funcs != 'undefined'){ var s= dlgs.list('Function list... ', funcs.join('\n')); if (s != ''){ var pos= txt.lastIndexOf(s); if (pos > 0){ editor.setSelStart(pos-1); } } } else { notes.status('No functions found, sorry :('); } } else { dlgs.error(editor.getFileType() + ' is not suported yet.\nBut you can add suport editing this script :)'); } |
From: Anderson R. B. <and...@po...> - 2004-08-13 03:51:58
|
Ol=E1 pessoal, semana passada eu n=E3o consegui escrever a parte II do "Uma viagem aos=20 sources do Notes" por problemas pessoais, mas aqui est=E1 o cap=EDtulo dessa semana. Esta parte ensina a criar um item no menu do Notes, termina os ensinament= os sobre o suporte a internacionaliza=E7=E3o e mostra mais um monte de peque= nas coisas. Acho que com estas duas partes, qualquer programador j=E1 est=E1 = apto a pegar a sua primeira tarefa!!! Coment=E1rios?! Anderson |
From: Diogo G. <ass...@gm...> - 2004-08-03 13:38:26
|
Tem acontecido este erro quando eu tento fechar o Notes, se eu pegar e descompactar a instala=E7=E3o de novo no diret=F3rio, funciona, mas depois de um tempo para de novo. |
From: Anderson R. B. <and...@po...> - 2004-08-01 19:25:05
|
*Pra quem programa em C/C++* Algum programador C/C++ que tenha um GCC ou VC++ por perto poderia compilar o SpiderMonkey para n=F3s sem que ele precise do msvcr70.dll? (Acho que o msvcr70.dll =E9 do VisualStudio .Net, o dll do VC++ 6 todo mundo j=E1 tem e n=E3o precisar=EDamos distribuir ele, s=E3o menos uns 300kb)... O SpiderMonkey t=E1 aqui http://www.mozilla.org/js/spidermonkey/ onde tem instrui=E7=F5es de como baixar e compilar. Pra quem programa em C/C++ deve ser algo simples, mas eu n=E3o programo em C, hehhehe Por favor, mandem o DLL para o meu e-mail :) Muito Obrigado, Anderson Barbieri |
From: Anderson R. B. <and...@po...> - 2004-07-29 03:33:18
|
Come=E7a hoje uma s=E9rie de tutoriais ao meu modo (cheios de besteiragen= s=20 no meio) para aqueles que est=E3o tentando entender o c=F3digo do Notes, mas tem=20 d=FAvidas. Vou ver se consigo manter o ritmo de um cap=EDtulo por semana. Esta primeira parte fala sobre como criar um novo painel para o Notes e=20 explica um pouco sobre o sistema de tradu=E7=E3o. Se os tutoriais agradarem a gente p=F5e no site (quem sabe recussitamos o= =20 NotesDev?). Eu gostaria muito do feedback de voc=EAs. Eu tamb=E9m queria saber onde=20 voc=EAs tem mais d=FAvidas, pois quero saber sobre o que devo escrever no pr=F3ximo=20 cap=EDtulo. Abra=E7o =E0 todos! Anderson |
From: Anderson R. B. <and...@po...> - 2004-07-28 18:00:40
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title>Notes Script Api</title> </head> <body> <h1>Scripts do Notes</h1> <h2>1. A linguagem de script do Notes</h2> A linguagem de script do Notes é JavaScript 1.5. O Notes usa a mesma engine de script (chamada de SpiderMonkey) que os navegadores do projeto Mozilla e de muitos produtos da Macromedia. Portanto, todos a especificação da linguagem JavaScript é suportada. Porém, a DOM, que não faz parte da linguagem, não é suportada pelo Notes (ou seja, objetos como window, form, document, etc. não funcionam). No lugar da DOM o Notes traz uma API própria e completa que permite interagir com os sistemas internos do Notes, manipular arquivos, executar programas, etc. Esta API é descrita no capítulo 2. O capítulo 3 apresenta as ações internas do Notes, ações dos painéis e propriedades dos painéis que podem ser manipuladas através de algumas funções descritas no capítulo 2. <br> <br> <h2>2. Funções e objetos <br> </h2> <h3>2.1. Funções para interagir com o Notes <br> </h3> Várias funções que permitem receber informações sobre o Notes, executar ações internas do Notes, se comunicar com os painéis, etc.<br> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;"> notesExec( ActionName );</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Executa uma ação interna do Notes. Passe o nome da ação como uma string. Veja a lista de ações no final deste documento.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo: <br> <pre>//Mostra o diálogo para criar novos arquivos<br>notesExec('actFileNew');<br><br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;"> notesPanelExec( PanelName, ActionName, Params );</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Executa uma ação interna de um dos painéis do Notes. Passe o nome do painel, o nome da ação e o parâmetros da ação como strings. Veja as apis para cada painel no fim do documento. </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo: <br> <pre>// Imprime "hello world" no painel de saída<br>notesPanelExec('Output', 'add', 'Hello World!');<br><br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;"> notesPanelSetProperty(PanelName, PropertyName, Value);</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Modifica o valor de uma propriedade de um dos painéis do Notes. Passe o nome do painel, o nome da propriedade e o novo valor como strings. Veja as apis para cada painel no fim do documento. </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo: <br> <pre>// Faz o painel biblioteca exibir os códigos para java script<br>notesPanelSetProperty('Library', 'FileType', 'JavaScript');<br><br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">notesPanelGetProperty(Name, PropertyName) </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Lê o valor de uma propriedade de um dos painéis do Notes. Passe o nome do painel e o nome da propriedade, o valor será retornado na forma de uma string. Você pode usar funções do JavaScript para converter o valor para outros tipos - mas em geral você querer os valores em strings mesmo. Veja as apis para cada painel no fim do documento para saber sobre as propriedades disponíveis.</td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Armazena na variável o tipo de arquivo que está sendo mostrado <br>// no painel biblioteca<br>CurrentLibraryLanguage= notesPanelGetProperty('Library', 'FileType');<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">getNotesSettingsDir ()</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Retorna o diretório em que estão as configurações do Notes<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>dir= getNotesSettingsDir();<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">getNotesDir() </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Retorna o diretório em que o Notes está instalado<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>dir= getNotesDir();<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">getActiveProfile()</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Retorna o profile atual.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Acha o diretório de macros <br>macrosDir= getNotesSettingsDir() + 'profiles\' + getActiveProfile() + '\macros\';<br></pre> </td> </tr> </tbody> </table> <br> <br> <h3>2.2. Funções do sistema operacional</h3> Funções que permitem receber e modificar informações do sistema operacional, executar programas, etc.<br> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">shellExec( ProgramToRun, Args )</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Executa um programa. Passe o programa como primeiro parâmetro e os argumentos que você quer passar para ele no segundo.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Roda o Notes<br>shellExec(getNotesDir() + 'Notes.exe', ''); <br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">getClipboard ()</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Retorna o conteúdo da área de transferência.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// cola o texto da área de transferência no Notes<br>editor.selText= getClipboard();<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">setClipboard(Value) </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Envia para a área de transferência o conteúdo passado.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// O mesmo que fazer um notesExec('actEditCopy'), ou seja, copiar<br>setClipboard( editor.selText );<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">setEnv(name, value) </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Modifica o valor da variável de ambiente passada em "name" para value. Se a variável de ambiente não existir, ela será criada.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>setEnv('HOME', 'C:\');<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">getEnv(name) </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Pega o valor de uma variável de ambiente.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>homeEnvVar= getEnv('HOME');<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">getCurDir()</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Lê o diretório atual do sistema operacional<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>curDir= getCurDir();<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">setCurDir(dirname) </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Modifica o diretório atual para o valor passado.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>setCurDir( getEnv('HOME') );<br></pre> </td> </tr> </tbody> </table> <br> <br> <h3>2.3. O objeto "editor"</h3> O objeto "editor" permite a você acessar as propriedades e métodos do editor ativo.<br> Para verificar se há um editor ativo, você pode ler a propriedade isActive. Veja<br> todas as propriedades e méotodos abaixo:<br> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">editor.insert(str)</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Insere a string passada no editor.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>editor.insert('Hello word'); <br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">editor.text </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Permite acessar todo o conteúdo do editor atual.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Manipula o texto do editor atual, acrescentando "aham!"<br>s= editor.text;<br>s= s + 'aham!';<br>editor.text= s;<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">editor.selText </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Permite acessar o texto selecionado.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>s= editor.selText;<br>s= s + 'adicionando aham a seleção!';<br>editor.selText= s; <br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">editor.lineText</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Permite acessar o conteúdo da linha atual<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Deleta o conteúdo da linha atual<br>editor.lineText= '';<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">editor.line</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Permite acessar o número da linha em que está o cursor.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Pula 10 linhas<br>editor.line = editor.line + 10;<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">editor.col</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Permite acessar a coluna que que está ao cursor.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Vai para a última coluna da linha<br>s = editor.lineText;<br>editor.col= s.length; <br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">editor.selStart </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Permite acessar a posição do caret e onde está o início da seleção atual.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Move o caret para o primeiro caracter do texto<br>editor.selStart = 1;<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">editor.selLength </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Permite ler e modificar o número de caracteres selecionados.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// seleciona 10 caracteres<br>editor.selLength= 10;<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">editor.linesCount </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Permite descobrir quantas linhas tem o texto atual. <span style="font-style: italic;">Não</span> é possível modificar o número de linhas usando está propriedade, apenas descobrir quantas linhas o texto tem.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>txtLines = editor.linesCount;<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">editor.saveView </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Faz o editor gravar a posição em que o caret está. É possível retornar a posição usando restoreView(). Use quando você pretende voltar a posição em que estava no texto após fazer modificações.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// salva a posição do texto (para voltar ao mesmo lugar depois)<br>editor.saveView();<br><br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">editor.restoreView</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Volta ao lugar em que o editor estava quando saveView foi chamado.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// volta ao lugar em que o cursor estava quando saveView foi chamado<br>editor.restoreView();<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">editor.fileType</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Tipo de arquivo do arquivo atual. </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Sincroniza o tipo de arquivo atual com o tipo de arquivo<br>// que está sendo mostrado na biblioteca<br>editor.fileType= getNotesPanelProperty('Library', 'FileType');<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">editor.tabSize</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Tamanho usado para o caracter tab.<span style="font-weight: bold;"> </span></td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>if (editor.tabSize == editor.indentSize) {<br> alert('O tamanho da identação e do caracter tab são iguais!!!');<br>}<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">editor.indentSize</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Tamanho da identação </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Modifica o tamanho da identação para o tamanho do caracter tab<br>editor.indentSize = editor.tabSize;<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">editor.modified </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Dize se o texto foi modificado e permite mudar isto.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Faz o Notes pensar que o texto não foi modificado<br>editor.modified = false;<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">editor.isReadOnly</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Diz se o texto pode ser modificado. </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Proíbe que mudanças sejam feitas no arquivo<br>editor.isReadOnly= true;<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">editor.isActive </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Diz se há um editor ativo (pode não ter arquivo aberto ou estar mostrando a StartPage!). Essa propriedade não pode ser modificada.<span style="font-weight: bold;"> </span></td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>if (editor.isActive == true){ <br> editor.insert('Hi!');<br>}<br></pre> </td> </tr> </tbody> </table> <br> <h3>2.4. O objeto "tabs"</h3> O objeto tabs permite manipular as tabs (cada documento aberto no Notes é uma tab) abertas no Notes. Você pode ir de uma tab para outra, descobrir que arquivo está sendo mostrado na tab atual, etc.<br> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">tabs.nextTab()</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Vai para o próximo documento.<span style="font-weight: bold;"> </span></td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>tabs.nextTab();<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">tabs.previusTab()</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Vai para o documento anterior.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>tabs.previusTab();<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">tabs.gotoFile(fileName)</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);"> Vai para a tab do arquivo passado.<span style="font-weight: bold;"> </span></td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>tabs.gotoFile( 'Nome do arquivo' );<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">tabs.gotoFileAndMarkLine(fileName, line)</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Permite marcar em vermelho (ou outra cor para erros configurada pelo usuário) a linha passada.<span style="font-weight: bold;"> </span></td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Marca a linha 10 do documento atual<br>tabs.gotoFileAndMarkLine(tabs.activeFileName, 10);<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">tabs.activeTabIndex </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Permiter ler e modificar o index da tab atual.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Muda de tab e volta para o mesmo lugar <br>i= tabs.activeTabIndex;<br>tabs.nextTab();<br>tabs.activeTabIndex= i;<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">tabs.activeTabCaption</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Permite ler o título da tab atual (normalmente o nome do arquivo, mas pode ser "Documento 1", por exemplo, se o arquivo ainda não tiver sido salvo).<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>alert(tabs.activeTabCaption);<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">tabs.activeFileName</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);"> Nome do arquivo atual. Essa propriedade não pode ser modificada, mas você pode usar o método gotoFile do objeto tabs para ir para um determinado arquivo.<span style="font-weight: bold;"> </span></td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>alert(tabs.activeFileName);<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">tabs.openFile(fileName); </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Abre o arquivo passado em fileName.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// abre o readme do Notes<br>tabs.openFile(getNotesDir() + 'reame.txt'); <br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">tabs.activeTabType;</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);"> Tipo da tab atual. Use para saber se a tab atual é um arquivo nunca salvo ou se é a StartPage, etc. Retorna startpage, newfile, file ou none.<span style="font-weight: bold;"> </span></td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>if (tabs.activeTabType == 'newfile') {<br> alert('Você nunca salvou este arquivo na vida!!!');<br>}<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">tabs.count</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Número total de tabs abertas no Notes. Você pode usar isto para circular em todas as tabs em um loop e assim alterar todos os arquivos.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Salva todos os arquivos<br>for(var i= 0; i < tabs.count; i++){<br> tabs.activeTabIndex= i;<br> notesExec('actFileSave');<br>}<br></pre> </td> </tr> </tbody> </table> <br> <h3>2.5. Funções para lidar com arquivos e diretórios</h3> Várias funções para lidar com arquivos e diretórios. Note que as funções que manipulam aquivos tem o nome iniciado por "file" enquanto as que manipulam apenas diretórios, iniciam sempre por "dir". Então para copiar um arquivo você usa fileCopy e para copiar um diretório, dirCopy. <br> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">fileGetContents(filename) string</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Lê o arquivo passado e retorna o conteúdo dele como uma string.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// vemos se o texto atual é igual ao do arquivo salvo. Se for,<br>// tiramos o status de modificado do arquivo <br>if (editor.modified = true && tabs.activeTabType == 'file'){<br> if (editor.text == fileGetContents(tabs.activeFileName)){<br> editor.modified = false; <br> }<br>}<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">filePutContents(filename, content)</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Salva a string passada em content para um arquivo.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Salva apenas o conteúdo selecionado para o arquivo <br>filePutContents(tabs.activeFileName, editor.selText);<br>// Mostramos o resultado para o usúario<br>editor.text = editor.selText;<br>// removemos o estatus de modificado<br>editor.modified = false;<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">fileCopy(fromfile, tofile [, overwrite = true])</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Copia um arquivo para outro lugar. O último parâmetro é opcional e indica o que fazer se o arquivo especificado em "tofile" já existir. Se você passar true, ele vai sobrescrever o arquivo existente. Se você passar false, ele não vai copiar. Se você não especificar um valor, ele será setado para true. A função retorna true se conseguir copiar e false se algo der errado.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Faz o backup do arquivo atual<br>fileCopy(tabs.activeFileName, '~' + tabs.activeFileName);<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">fileDelete(filename)</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Deleta um arquivo <span style="font-style: italic;">sem pedir confirmação e sem mover para lixeira</span>. Tenha cuidado ao usar esta função!<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Deleta o arquivo que o Notes está mostrando<br>if (confirmDlg('Você quer mesmo deletar este arquivo?!?!') == 'yes') {<br> editor.modified= false;<br> flname= tabs.activeFileName;<br> notesExec('actFileClose');<br> fileDelete(flname);<br>}<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">fileSearch(dirname [, mask = '*'] [, recursive = false]) </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Busca arquivos e pastas em um diretório usando a mascára passada em mask. Retorna uma string com os arquivos e pastas encontrados separados pelo caracter #10. O parâmetro mask é opcional e no caso de não ser passado usa "*". O parâmetro recursive também é opcional (false se omitido), e especifica se a busca deve incluir os subdiretórios recursivamente. Todos os caminhos para diretórios retornados possuem um "\" como último caracter (assim você pode saber se se trata de um arquivo ou de um diretório com segurança).<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Lista todos os arquivos no diretório do Notes<br>var searchresult= new String( fileSearch( getNotesDir() , '*', true) );<br>// coloca o resultado em um array<br>arraydecaminhos= searchresult.split( String.fromCharCode(10) );<br>// conta o número de diretórios<br>dircount = 0;<br>for (var i in arraydecaminhos){<br> caminho = new String(arraydecaminhos[i]);<br> if (caminho[caminho.length-1] == '\\'){<br> dircount = dircount + 1;<br> }<br>}<br>alert('O diretório do Notes tem ' + dircount + ' subdiretórios!');</pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">fileIsReadOnly(filename)</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Retorna true se o arquivo passado como parâmetro for readonly. </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>isRO= fileIsReadOnly( tabs.activeFileName );<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">fileSize(filename)</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Retorna o tamanho do arquivo no HD.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Mostra o número de caracteres acrescentados ao arquivo<br>// atual desde a última vez que ele foi salvo<br>if (editor.modified = true && tabs.activeTabType == 'file'){<br> s= editor.text;<br> count= s.length - fileSize(tabs.activeFileName); <br> alert('Você adicionou ' + count ' ao texto :)');<br>}<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">dirExists(dirname)</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Retorna true se o diretório passado como parâmetro existir.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// lembre-se de usar o caracter de escape "\" para caminhos de arquivo<br>jsdk= dirExists('c:\\javasdk142\\');<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">dirCopy(fromdir, todir [, mask = '*' ][, overwrite = true])</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Copia um diretório e seus subdiretórios de "fromdir" para "todir" de acordo com a mascara passada em "mask"; "mask" ("*" se omitido) e "overwirte" ("true" se omitido) são opcionais. Um diálogo será mostrado ao usuário enquanto a cópia é realizada indicando o progresso e permitindo que ele cancele a operação se ela for muito longa. Se o usuário cancelar ou ocorrerem erros, a função retornará false. </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// faz um backup do diretório do Notes<br>dirCopy(getNotesDir(),getNotesDir() + 'backup\\');<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">dirDelTree(dirname [, mask = '*' ]) bool // deleta arquivos e subdiretórios. Use dirDelete para deletar o diretório depois que ele estiver vazio </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Deleta uma árvore de diretórios sem deletar o diretório passado em "dirname". Você pode usar a função para deletar apenas arquivos ou subdiretórios de um diretório usando uma máscara. Se você quiser remover a pasta e todo o seu conteúdo, use dirDelTree('Nome do diretório') e depois dirDelete(' Nome do diretório'). A máscara é opcional e é "*" quando omitida. Essa função sempre funciona de forma recursiva, mas você pode impedi-la de deletar subdiretórios usando uma máscara mais restritiva. Alternativamente você pode usar combinações de fileSearch com fileDelete e dirDelete para operações mais complexas. Essa função mostra um diálogo de progresso ao usuário, como em dirCopy().<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// deleta todas as configurações do Notes e sai do<br>// programa forçando o Notes a chamar o instalador <br>// da próxima vez que iniciar. (Não faça isto em casa!)<br>dirDelTree(getNotesSettingsDir());<br>notesExec('actFileExit');<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">dirDelete(dirname)</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Deleta um diretório vazio.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>dirDelete(' Caminho aqui! ');<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">dirCreate(dirname [, force = false]) </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Cria um novo diretório; "force" é parâmetro opcinal que é setado para false quando omitido. Se você setar ele para true a função tentará criar todos os diretórios necessários para poder criar o diretório especificado.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Cria a pasta "Minha Pasta" no diretório do Notes<br>dirCreate( getNotesDir() + 'Minha Pasta\\' );<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">move(from, to)</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Move um arquivo ou pasta do caminho especificado em "from" para "to". Retorna true se funcionar.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>move( getNotesDir() + 'Minha Pasta', getNotesDir() + 'MyFolder'); <br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">rename(from, to)</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Renomeia arquivo ou pasta. </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Tanto faz renomear ou mover :)<br>rename( getNotesDir() + 'Minha Pasta', getNotesDir() + 'MyFolder'); <br></pre> </td> </tr> </tbody> </table> <br> <h3>2.6. Diálogos</h3> Funções que permitem interargir com o usuário mostrando diálgos para pedir ou mostrar informações.<br> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">alert(msg)</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);"><span style="font-weight: bold;"></span>Mostra uma mensagem para o usuário;<span style="font-weight: bold;"> </span></td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// mostra diálogo com Hello Woooooorrrrrld! <br>alert('Hello Woooooorrrrrld!');<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">msgDlg(msg)</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">O mesmo que alert();<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>//Mostra olá <br>msgDlg('Olá');<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">confirmDlg(msg)</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);"> Mostra uma mensagem pedindo confirmação ao usuário se algo deve ou não ser feito. Retorna "yes, no, cancel".<span style="font-weight: bold;"> </span></td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>if (confirmDlg('Deletar arquivo?') == 'yes') {<br> //TODO código para deletar arquivo aqui!<br>}<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">errorDlg(msg)</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">O mesmo que alert e msgDlg, porém com ícone de erro.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>errorDlg('Você ainda não configurou o script usuário estúpido!');<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">colorDlg()</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);"> Mostra um diálogo para o usuário selecionar a cor e retorna a cor no formato html (#RRGGBB). </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Insere uma cor no código<br>editor.selText= colorDlg();<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">inputDlg(descr [, value = '']) </span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">Diálogo que pede ao usuário que preencha um valor; "descr" especifica a instrução que será mostrada ao usuário; "value" é um valor iniciar opcional. Retorna o valor preenchido pelo usuário.<span style="font-weight: bold;"> </span></td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>editor.selText= inputDlg('O que você quer inserir hoje?!');<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">openDlg()</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);"> Mostra um diálogo de abrir arquivo e permite o usuário escolher um arquivo que será retornado como resultado da função.<span style="font-weight: bold;"> </span></td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>msgDlg("Você selecionou " + openDlg());<br></pre> </td> </tr> </tbody> </table> <br> <table style="width: 90%; text-align: left;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top;"><span style="font-weight: bold;">saveDlg()</span><br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(238, 238, 238);">O mesmo que openDlg, só que é mostrado um diálogo de salvar.<br> </td> </tr> <tr> <td style="vertical-align: top; background-color: rgb(252, 255, 220);">Exemplo:<br> <pre>// Uma implementação de "salvar como" :)<br>s= saveDlg();<br>if (s != '') {<br> filePutContents(s, editor.text);<br>}<br></pre> </td> </tr> </tbody> </table> <br> <br> <h2>3. Ações e propriedades internas do Notes<br> </h2> <h3>3.1. Ações do Notes</h3> As ações abaixo podem ser chamadas usando a função notesExec.<br> <br> <table style="width: 100%; text-align: left;" border="1" cellpadding="5" cellspacing="0"> <tbody> <tr> <td width="30%">actFileNew</td> <td>Mostra o diálogo para criar novos arquivos</td> </tr> <tr> <td width="30%">actFileOpen</td> <td>Mostra o diálogo para abrir um arquivo</td> </tr> <tr> <td width="30%">actFileRevert</td> <td>Desfaz todas as alterações revertendo o arquivo para o seus estado inicial</td> </tr> <tr> <td width="30%">actFileSave</td> <td>Salva as modificações feitas no arquivo</td> </tr> <tr> <td width="30%">actFileSaveAs</td> <td>Mostra um diálogo que permite salvar o documento atual com o nome que você escolher</td> </tr> <tr> <td width="30%">actFileSaveAll</td> <td>Salva todos os arquivos</td> </tr> <tr> <td width="30%">actFileSaveSelection</td> <td>Mostra um diálogo que permite salvar o trecho selecionado do documento</td> </tr> <tr> <td width="30%">actFilePrint</td> <td>Mostra um diálogo que permite imprimir o documento</td> </tr> <tr> <td width="30%">actFileClose</td> <td>Fecha o documento atual</td> </tr> <tr> <td width="30%">actFileCloseAll</td> <td>Fecha todos os documentos</td> </tr> <tr> <td width="30%">actFileExit</td> <td>Sai do programa</td> </tr> <tr> <td width="30%">actEditUndo</td> <td>Desfaz a última alteração feita</td> </tr> <tr> <td width="30%">actEditRedo</td> <td>Refaz a última alteração desfeita</td> </tr> <tr> <td width="30%">actEditCut</td> <td>Recorta o texto selecioado para a área de transferência</td> </tr> <tr> <td width="30%">actEditCopy</td> <td>Copia o texto selecioado para a área de transferência</td> </tr> <tr> <td width="30%">actEditPaste</td> <td>Cola o conteúdo da área de transferência no documento</td> </tr> <tr> <td width="30%">actEditSmartPaste</td> <td>Cola o conteúdo da área de transferência adequando esta a identação</td> </tr> <tr> <td width="30%">actEditAddToClipboard</td> <td>Adciona o texto selecionado ao conteúdo da área de transferência</td> </tr> <tr> <td width="30%">actEditDel</td> <td>Deleta o texto selecionado ou o caracter atual</td> </tr> <tr> <td width="30%">actEditSelectAll</td> <td>Seleciona todo o texto</td> </tr> <tr> <td width="30%">actEditLineDel</td> <td>Deleta a linha atual</td> </tr> <tr> <td width="30%">actEditLineSelect</td> <td>Seleciona a linha atual</td> </tr> <tr> <td width="30%">actEditLineDuplicate</td> <td>Cria uma cópia da linha atual</td> </tr> <tr> <td width="30%">actEditFormatUppercase</td> <td>Converte os caracteres selecionados ou a palavra atual para maiúsculas</td> </tr> <tr> <td width="30%">actEditFormatLowercase</td> <td>Converte todos os caracteres ou a palavra atual para minúsculas</td> </tr> <tr> <td width="30%">actEditFormatTitlecase</td> <td>Deixa todas as palavras com a primeira letra em maiúscula</td> </tr> <tr> <td width="30%">actEditFormatToggleCase</td> <td>Transforma os caracteres maiúsculos para minúsculas e vice-versa</td> </tr> <tr> <td width="30%">actEditComment</td> <td>Comenta as linhas selecionadas</td> </tr> <tr> <td width="30%">actEditUncomment</td> <td>Descomenta as linhas selecionadas</td> </tr> <tr> <td width="30%">actEditIndent</td> <td>Aumenta a identação das linhas selecionadas ou da linha atual</td> </tr> <tr> <td width="30%">actEditUnindent</td> <td>Diminuí a identação das linhas selecionadas ou da linha atual</td> </tr> <tr> <td width="30%">actSearchFind</td> <td>Mostra um diálogo que permite localizar no documento atual e em outros documentos</td> </tr> <tr> <td width="30%">actSearchFindPrevius</td> <td>Localiza uma ocorrência anterior da palavra no texto</td> </tr> <tr> <td width="30%">actSearchFindNext</td> <td>Localiza a próxima ocorrência da palavra no texto</td> </tr> <tr> <td width="30%">actSearchReplace</td> <td>Mostra um diálogo quer permite substituir neste e em outros documentos</td> </tr> <tr> <td width="30%">actSearchGotoline</td> <td>Mostra um diálogo que permite ir para uma linha exta do documento</td> </tr> <tr> <td width="30%">actSearchGotocol</td> <td>Mostra um diálogo que permite ir para uma coluna exata da linha atual</td> </tr> <tr> <td width="30%">actSearchToggleMark</td> <td>Adicionar ou remove um marcador à linha atual</td> </tr> <tr> <td width="30%">actSearchNextMark</td> <td>Pula para o próximo marcador no texto</td> </tr> <tr> <td width="30%">actSearchPreviusMark</td> <td>Pula para o marcador anterior</td> </tr> <tr> <td width="30%">actSearchGotoMark</td> <td>Mostra um diálogo que permite pular para um dos marcadores do arquivo</td> </tr> <tr> <td width="30%">actSearchClearMarks</td> <td>Deleta todos os marcadores</td> </tr> <tr> <td width="30%">actSearchNextProblem</td> <td>Pula para o próximo problema</td> </tr> <tr> <td width="30%">actSearchPreviusProblem</td> <td>Pula para o problema anterior</td> </tr> <tr> <td width="30%">actSearchClearProblems</td> <td>Limpa a lista de problemas</td> </tr> <tr> <td width="30%">actSearchForward</td> <td>Avança para um ponto em que você já esteve</td> </tr> <tr> <td width="30%">actSearchBack</td> <td>Volta para um ponto em que você já esteve</td> </tr> <tr> <td width="30%">actViewNexttab</td> <td>Mostra o próximo documento</td> </tr> <tr> <td width="30%">actViewPreviustab</td> <td>Mostra o documento anterior</td> </tr> <tr> <td width="30%">actViewStatusBar</td> <td>Mostra/esconde a barra de status</td> </tr> <tr> <td width="30%">actViewToolbar</td> <td>Mostra/esconde a barra de ferramentas</td> </tr> <tr> <td width="30%">actProjectNew</td> <td>Mostra um diálogo que permite criar um novo projeto</td> </tr> <tr> <td width="30%">actProjectOpen</td> <td>Mostra um diálogo que permite abrir um documento do projeto</td> </tr> <tr> <td width="30%">actProjectOpenAll</td> <td>Abre todos os documentos do projeto</td> </tr> <tr> <td width="30%">actProjectAdd</td> <td>Mostra um diálogo que permite adicionar um documento ao projeto</td> </tr> <tr> <td width="30%">actProjectRemove</td> <td>Mostra um diálogo que permite remover um documento do projeto</td> </tr> <tr> <td width="30%">actProjectOptions</td> <td>Mostra um diálogo que permite editar as opções do projeto</td> </tr> <tr> <td width="30%">actRunLast</td> <td>Executa o último item executado</td> </tr> <tr> <td width="30%">actRunFile</td> <td>Executa o arquivo atual</td> </tr> <tr> <td width="30%">actRunConfigure</td> <td>Mostra um diálogo que permite configurar as ferramentas externas que podem ser executadas</td> </tr> <tr> <td width="30%">actCommandsUndo</td> <td>Desfaz todas as alterações feitas pelo último comando</td> </tr> <tr> <td width="30%">actCommandsFixlinebreaks</td> <td>Corrige as quebra de linhas do documento atual</td> </tr> <tr> <td width="30%">actCommandsWrap</td> <td>Mostra um diálogo que permite quebrar as linhas a cada X caracteres</td> </tr> <tr> <td width="30%">actCommandsInsertFile</td> <td>Mostra um diálogo que permite inserir o conteúdo de um arquivo no documento atual</td> </tr> <tr> <td width="30%">actCommandsInsertDateTime</td> <td>Insere a data e hora atuais</td> </tr> <tr> <td width="30%">actCommandsInsertImage</td> <td>Mostra um diálogo que permite inserir a tag HTML para mostrar a imagem selecionada</td> </tr> <tr> <td width="30%">actCommandsConvertSpecialHtmlChars</td> <td>Converte caracteres especiais para o seu código HTML</td> </tr> <tr> <td width="30%">actCommandsCompressHtml</td> <td>Remove caracteres desnecessários do HTML diminuindo o tamanho da sua webpage</td> </tr> <tr> <td width="30%">actCommandsVerifyHTML</td> <td>Verifica o código HTML usando o HTMLTidy</td> </tr> <tr> <td width="30%">actCommandsFixHTML</td> <td>Tenta corrigir os erros do c&oacut... [truncated message content] |
From: Anderson R. B. <and...@po...> - 2004-07-14 05:43:23
|
Aeeeeeeeeee, saiu mais um filhotim! http://notes2.sf.net/downloads/notes2004_pa3.exe Este =E9 o j=E1 costumeiro pr=E9-alpha do pr=F3ximo alpha. E tem instalador! (Gra=E7as ao Joelson!) Encontrem bugs pessoar! Vamos! Temos que corrigir eles :) Sinceramente, deve estar muito mais est=E1vel que o alpha 2. Sem falar que t=E1 mais r=E1pido e tem coisas novas, heheheh Log resumido de mudan=E7as: * Grandes mudan=E7as no componente que faz a colora=E7=E3o do c=F3digo a partir de um arquivo XML. Mudan=E7as no formato do arquivo da colora=E7=E3o que agora est=E1 separado em dois: NHL (regras) e NHS (estilos de fonte e cores); * O editor agora pode lembrar da =FAltima posi=E7=E3o de edi=E7=E3o do arquivo e dos marcadores para qualquer arquivo aberto no Notes nos =FAltimos 30 dias. (A op=E7=E3o "Lembrar da =FAltima posi=E7=E3o e dos marcadores" deve estar ativada no di=E1logo de prefer=EAncias.) * Grandes mudan=E7as no di=E1logo de prefer=EAncias; * Aumento de performance ao abrir/fechar arquivos, aplicar prefer=EAncias, sair do Notes, etc. * Filtros de arquivo (finalmente!); * Melhora nas fun=E7=F5es comentar/descomentar;=20 * Corre=E7=F5es e melhoramentos na fun=E7=E3o que mostra os s=EDmbolos (), [], {} coincidentes: se um s=EDmbolo coincidente n=E3o =E9 encontrado, o s=EDmbolo em que est=E1 o cursor =E9 mostrado com a cor de erro (vermelho por padr=E3o); * Corre=E7=F5es de bugs: notes n=E3o salvava a =FAltima linha em branco; o diret=F3rio do OS n=E3o era setado corretamente pelo menu executar; erros ao ativar o XPMenu; deletar linha n=E3o deletava a linha completamente; notes selecionava o editor errado ap=F3s fechar um editor; os marcadores e os =EDcones de problemas n=E3o eram recalculados corretamente quando uma linha era adicionada ou removida; items do menu de arquivos recentes/favoritos n=E3o estavam aparecendo; outros bugs menores. FONTES: Ainda n=E3o mandei os sources para o CVS por que baguncei muita coisa agora. Como o CVS =E9 um cara muito chato, vou ter que ver direitinho o que eu fiz antes de enviar. Mas isto ser=E1 amanh=E3, por hoje as minhas pilhas acabaram! Boa madrugada! Yeeeeeeahhhhhhhhhh Anderson |
From: Anderson R. B. <and...@po...> - 2004-07-12 21:38:47
|
Pessoal da lista, gostaria que todos se dirigem-se a este link e dessem suas id=E9ias de como o suporte a projetos dever=E1 funcionar!!! http://notes.codigolivre.org.br/forum/read.php?f=3D1&i=3D50&t=3D50 Em tempo: Mr. Joelson passou o domingo brigando com o INNO Setup e como resultado criou um lindo instalador para o Notes. (Palmas pro Joelson!) Temos instalador :) Abra=E7o, Anderson |
From: Anderson R. B. <and...@po...> - 2004-07-11 05:12:54
|
Ol=E1 bando de mudos, Atualizei o CVS com as minhas =FAltimas modifica=E7=F5es. As instru=E7=F5= es s=E3o as mesmas do mail anterior. Quem t=E1 como dev do Notes no SF, pode baixar agora. Quem n=E3o t=E1, d=EA algumas horinhas para que o reposit=F3= rio de downloads anonimos seja atualizado... O que temo di novo?! - Corre=E7=F5es para os bugs reportados pelo f=F3rum do Notes - sele=E7=E3o de colunas - Adicionar a clipboar funfando - suporte as seguintes linguagens: ASP, C#, C-C++, CSS, Delphi, HTML, Jav= a, JavaScript, JSP, Perl, PHP, Text, VisualBasic, XML Basicamente acho que falta pouco para o alpha 3. O que falta? - arrumar alguns bugs do editor relativos ao wordwrap e ao caracter tab - indicador de escopo (o Denner prometeu que vai trabalhar nisto durante=20 o domingo) - implementar algumas op=E7=F5es do novo dlg de configura=E7=E3o (ao meno= s backup, extens=F5es de arquivos e associa=E7=F5es de arquivos) - mexer no instalador para que ele reconhe=E7a profiles antigos (alpha 2=20 pra baixo) e crie um profile independente do profile anterior (o formato dos arquivos=20 de colora=E7=E3o mudou, ent=E3o basicamente o profile do alpha 2 e do alpha 3 n=E3o conver= sam=20 mt bem) O que quer dizer que podemos ter um pr=E9-alpha a=ED por segunda ou=20 ter=E7a-feira :) Seria bom se... - algu=E9m criasse highlighters para python e assembler. S=E3o linguagens= =20 importantes, mas que eu n=E3o conhe=E7o o suficiente para escrever o hihglighter :( - algu=E9m fizesse um instalador/desinstalador bunitim usando o INNO setu= p=20 ou o NSIS (o NSIS =E9 melhor pq cria instaladores min=FAsculos) - o Josimar desse sinais de vida e quem sabe arruma-se os bugs dos=20 di=E1logos de busca... - o Daniel desse not=EDcias sobre a tradu=E7=E3o; - o Lucas Eur=EDpedes mostrasse alguma novidade sobre o ShellBrowser q el= e=20 prometeu implementar. - algu=E9m me desse uma placa m=E3e nova, a minha t=E1 indo pro saco (ris= os); Vai sonhando Anderson... hahahahah T+ mudosman Anderson |
From: <bug...@ya...> - 2004-07-08 15:17:41
|
Legal.... Bem vindo André Anderson Rodrigues Barbieri <and...@po...> wrote: Olá pessoal, venho a vocês anunciar que finalmente encontramos o nosso novo webmaster!!!! (aplausos) O nome dele é Nabucodonosor Coutinho e além de saber php, mysql e postgreSQL, ele é coordenador do projeto PostgreSQL Brasil Win32 (http://wiki.postgresql.org.br). Ah! Ele acaba de me mandar um e-mail dizendo que conseguiu fazer o Notes rodar no linux via wine!!!! E também ele já está vendo um bugtracker para nós (graças a Deus!)... Nabucodonosor, seja muito bem-vindo!!! Abraço, Anderson ------------------------------------------------------- This SF.Net email sponsored by Black Hat Briefings & Training. Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com _______________________________________________ notes2-team mailing list not...@li... https://lists.sourceforge.net/lists/listinfo/notes2-team --------------------------------- Yahoo! Mail agora ainda melhor: 100MB, anti-spam e antivírus grátis! |
From: Anderson R. B. <and...@po...> - 2004-07-07 18:08:58
|
Quem n=E3o quer usar o CVS ou n=E3o pode por algum motivo tem uma chance: --> http://cvs.sourceforge.net/cvstarballs/notes2-cvsroot.tar.bz2 O sourceforge coloca um pacote com todo o c=F3digo do CVS para baixar 24hs (ou mais) depois da =FAltima atualiza=E7=E3o. O formato do pacote =E9 bzip2 que =E9 um formato de compress=E3o bem melhor que o zip. Em geral winzip e companhia tem suporte a ele. Boa festa :) Anderson |
From: Anderson R. B. <and...@po...> - 2004-07-07 03:43:35
|
Ol=E1 pessoal, venho a voc=EAs anunciar que finalmente encontramos o nosso novo webmaster!!!! (aplausos) O nome dele =E9 Nabucodonosor Coutinho e al=E9m de saber php, mysql e postgreSQL, ele =E9 coordenador do projeto PostgreSQL Brasil Win32 (http://wiki.postgresql.org.br). Ah! Ele acaba de me mandar um e-mail dizendo que conseguiu fazer o Notes rodar no linux via wine!!!! E tamb=E9m ele j=E1 est=E1 vendo um bugtracker para n=F3s (gra=E7as a Deus!)... Nabucodonosor, seja muito bem-vindo!!! Abra=E7o, Anderson |
From: Anderson R. B. <and...@po...> - 2004-07-06 06:53:41
|
Ol=E1 pessoas! Atendendo aos pedidos do Shander, a partir de hoje come=E7o a disponibili= zar as atualiza=E7=F5es do c=F3digo fonte do Notes atrav=E9s do CVS. Resolvi usar o CVS do Sourceforge, j=E1 que eles oferecem alguns servi=E7= os a mais nisto do que o CL e tamb=E9m por que =E9 inernacional :) Quem nunca usou CVS na vida, pode tentar usar o tortoise http://www.tortoisecvs.org/ Para baixar usando ele (ap=F3s instalar e reiniciar o zwindows), 1) crie uma pasta no HD. =C9 para ela que o c=F3digo ser=E1 baixado; 2) selecione a pasta no explorer e clique com o bot=E3o direito. Escolha "CVS Obter m=F3dulo". 3) Preencha os campos ansim: Protocolo: Servidor de senha (:pserver:) Servidor: cvs.sourceforge.net Pasta do reposit=F3rio: /cvsroot/notes2 Nome: anonymous M=F3dulo: notes D=EA OK e era wilson :) Nota: o c=F3digo ainda vai demorar um pouco para chegar no servidor de=20 downloads an=F4nimo. Ent=E3o se der um erro do tipo "pasta n=E3o encontrada" ou semelhante, =E9= que=20 ele ainda n=E3o chegou. Quem estiver como desenvolvedor do Notes no SF pode usar o seu=20 nome de usu=E1rio com o protocolo "Shell Seguro (:ext:)" para acessar :) Em tempo: deletem (ou renomeiem) a pasta do Notes 2004 do application data ao usarem esta vers=E3o. Os formatos agora s=E3o incompat=EDveis com= o formato antigo e eu n=E3o tive tempo pra fazer alguma m=E1gica pra evitar problemas :( Em tempo 2: segue em anexo tutorial para adicionar suporte a novas linguagens de programa=E7=E3o ao Notes. =C9 legal ler tamb=E9m para enten= der como as coisas funcionam :) T+ Anderson |
From: Anderson R. B. <and...@po...> - 2004-07-03 04:14:33
|
Shander wrote: >> Conforme est=E1 no f=F3rum, esse bugzim j=E1 t=E1 arrumado aqui... log= o vou=20 >> estar liberando os sources novos. Onde =E9 o forum, est=E1=20 >> absolutamente confuso para mim. Vejo links para sourceforge, outros=20 >> para c=F3digo livre, uns funcionam, outros n=E3o. N=E3o d=E1 para cent= ralizar=20 >> tudo em um lugar? Acho muit=EDssimo confuso e contraproducente a forma= =20 >> que est=E1 sendo tocado tudo isto. Existe um "to-do" do projeto?=20 >> Escrito... documentado??? > Que tal http://notes.codigolivre.org.br/forum ? Quanto a confus=E3o, nem=20 tudo =E9 culpa nossa. N=F3s tentamos elimin=E1-la um tempo atr=E1s. Passamos tudo que ainda estava no SourceForge para o=20 c=F3digo livre, botamos bug tracker. Tava tudo lindo e maravilhoso. Mas..= .=20 sabe a lei de Murphy? Pois =E9. Depois que est=E1vamos com tudo organizad= o e=20 bonitinho, o C=F3digo Livre teve um crash de HD e perdeu o banco de dados= ,=20 cvs, etc. de todos os projetos, inclusive do Notes. E eles n=E3o tinha=20 feito backup (nem n=F3s, pois teoricamente isso =E9 trabalho do servidor)= .=20 Resultado: tudo que tinh=E1mos feito e organizado sumiu de uma hora para=20 outra. Tinha textos introdut=F3rios para quem tava entrando no=20 desenvolvimento, textos da documenta=E7=E3o e mais muitas coisas que=20 perdemos. Faz pouco que o C=F3digo Livre voltou ao ar. J=E1 conseguimos=20 colocar o site de volta no ar, logo colocamos o resto. Quanto ao to-do, como em muitos projetos (praticamente todos os projetos=20 opensource), o bug tracker servia tamb=E9m para isto. O nosso to-do se fo= i=20 junto com o banco de dados. Sobrou o que as pessoas lembram. Eu estou=20 concluindo as modifica=E7=F5es na colora=E7=E3o que tinhamos pensado e=20 modificando o di=E1logos de configura=E7=F5es de acordo (falta pouco agor= a, eu=20 acho). O Josimar teoricamente est=E1 trabalhando nos di=E1logos de busca.= O=20 Denner est=E1 trabalhando no marcador de escopo (com afinco, mas tendo=20 dificuldades para achar um bom algoritmo). O Carlos Eduardo estava=20 tentando permitir a captura de compiladores de 16bits, mas n=E3o deu=20 not=EDcias. O Lucas est=E1 trabalhando em um ShellExplorer. Estas s=E3o a= s=20 pessoas que eu sei que est=E3o trabalhando no c=F3digo. Paralelamente tam= b=E9m=20 estou internacionalizando o c=F3digo e o Daniel est=E1 fazendo a tradu=E7= =E3o=20 propriamente dita para o ingl=EAs. O que falta fazer? - todo o sistema de projetos (veja anexo) - suporte a UTF-8 e Unicode (falta descobrir como suportar UTF-32, oem?!) - Terminar a StartPage (fazer ela ficar bem em qualquer resolu=E7=E3o e mostrar os links de projetos recentes) - Mais highlighters (n=E3o vou ter tempo de converter tudo do formato ant= igo para o novo) - internacionalizar 100% do c=F3digo - usar compress=E3o para os arquivos do diret=F3rio "data" (o Jonas escre= veu uma classe de compress=E3o, tem que fazer mais testes nela ainda) - permitir exportar/importar tipos de arquivos, configura=E7=F5es, etc. D= eve haver uma maneira f=E1cil do usu=E1rio baixar um NPK (Notes Package, que = =E9 o=20 formato criado pelo Jonas) do site e instalar ele no Notes para o Notes ficar com suporte a linguagem XYZ ou ganhar uma biblioteca nova para Java, etc. - ter mais templates para cada linguagem e mais items para a biblioteca. - arrumar os bugs e otimizar tudo o que der... - lan=E7ar a vers=E3o est=E1vel e fazer uma boa festa :) > Ser=E1 que n=E3o =E9 este o erro na instala=E7=E0o que est=E1 acont= ecendo, o=20 > sistema instala tudo mas o programa nao funciona por causa da bendita=20 > biblioteca no "diretorio errado". O erro de instala=E7=E3o foi corrigido no Alpha 2, teoricamente. O erro d= a=20 falta da biblioteca deve ocorrer apenas ao compilar. Se est=E1 ocorrendo=20 em outro momento, ent=E3o tu pode ter encontrado um bug novo... > Da=ED a importancia de um cvs, algumas pessoas podendo comitar=20 > outras n=E3o. Tipo, nem que somente voc=EA possa comitar no cvs, mas da= =ED,=20 > assim que um commit for feito todos ter=E3o o c=F3digo atualizado.=20 > Evita-se o "isso foi corrigido, so nao disponibilizei o c=F3digo!". Hum, mas igual eu n=E3o faria checkins com c=F3digo quebrado, n=E3o?! Por= que=20 o motivo de eu n=E3o disponibilizar o c=F3digo =E9 sempre o mesmo: atualm= ente=20 t=E1 inus=E1vel. > Algumas pessoas que conhecem bem o sistema teriam a opcao de comitar,=20 > logo quem ainda n=E3o estivesse qualificado enviaria as contribuicoes=20 > para o pessoal que tem direito de comitar que analisaria o c=F3digo e=20 > commitaria ou n=E3o, melhoraria ou nao, e assim vai.=20 Nem o sourceforge, nem o c=F3digo livre permitem dar/tirar permiss=F5es p= ara=20 os commits. Mas podemos fazer um acordo entre n=F3s. O maior problema =E9= =20 que as pessoas n=E3o testam suficentemente o c=F3digo antes de envi=E1-lo= ...=20 mas o motivo disto pode ser que eles sabem que eu vou corrigir os bugs,=20 hahahah. Mas =E9 verdade que a minha id=E9ia de revis=E3o n=E3o =E9 apena= s=20 encontrar bugs. =C9 tamb=E9m ver se o c=F3digo est=E1 bem feito, se n=E3o= est=E1=20 muito procedural, se n=E3o t=E1 implementado de um jeito que v=E1=20 impossibilitar algo no futuro. Pra ser um revisor, teria que ter bons=20 conhecimentos sobre OOP e sobre o c=F3digo todo. > =C9 desta forma que =E9 desenvolvido o kernel e a maioria dos sistemas=20 > s=E9rios por a=ED. Acho que isto seria um diferencial e facilitador no=20 > desenvolvimento do Notes. No Kernel at=E9 bem pouco tempo s=F3 o Linus e o Allan (sim, apenas duas=20 pessoas) podiam dar commits. Agora tem o Marcelo tamb=E9m que est=E1 como= =20 mantenedor. Acho que por agora eu posso continuar como revisor =FAnico.=20 Quando algu=E9m se destacar entre os outros desenvolvedores, ele ganharia= =20 o status de revisor tamb=E9m. Assim o n=FAmero de revisores iria crescend= o=20 conforme a equipe fosse aumentando. E tamb=E9m =E9 legal por que =E9 uma = forma=20 de reconhecer o trabalho daqueles que se dedicam mais ao projeto. Que=20 achas?! > Ok, n=E3o querendo ser chato, mas o que vamos fazer? Que tal o=20 > bugzilla? Que tal eu escrever um bugtracker? Que tal me passar um=20 > modelo ou especifica=E7=E3o de como isto funciona para eu escrev=EA-lo?= =20 > (Nunca fiz um bugtracker antes ;-) ) N=E3o se preocupe em ser chato. Pode puxar mesmo. Em projetos abertos as=20 coisas s=F3 acontecem quando algu=E9m "faz" elas acontecerem. No momento tem duas pessoas "querendo" entrar para a =E1rea=20 do site e para um deles j=E1 fiz o pedido dele colocar um bugtracker no=20 ar. Vamos dar mais uns dias para ver se eles deslancham. Se enrolarem=20 muito, j=E1 que tu te ofereceu, a tarefa passa pra ti, que t=E1 com g=E1s= . Eu=20 realmente preferia que tu atuasse no desenvolvimento (programadores=20 Delphi s=E3o raros), mas se tu preferir atuar no site, n=E3o tem problema= =20 algum. E se quiser atuar nas duas, tamb=E9m pode (eu sempre acabo atuando= =20 em todas apesar de querer ficar no desenvolvimento, hahahah). Abra=E7o, Anderson |
From: Shander <sh...@us...> - 2004-07-02 16:26:46
|
Anderson Rodrigues Barbieri escreveu: > Conforme est=E1 no f=F3rum, esse bugzim j=E1 t=E1 arrumado aqui... logo= vou=20 > estar liberando os sources novos. Onde =E9 o forum, est=E1 absolutamente confuso para mim. Vejo links para= =20 sourceforge, outros para c=F3digo livre, uns funcionam, outros n=E3o. N=E3= o d=E1=20 para centralizar tudo em um lugar? Acho muit=EDssimo confuso e=20 contraproducente a forma que est=E1 sendo tocado tudo isto. Existe um=20 "to-do" do projeto? Escrito... documentado??? > Ela est=E1, mas n=E3o est=E1 no diret=F3rio correto. Vide o f=F3rum :) Ser=E1 que n=E3o =E9 este o erro na instala=E7=E0o que est=E1 acontecend= o, o=20 sistema instala tudo mas o programa nao funciona por causa da bendita=20 biblioteca no "diretorio errado". > Voc=EA j=E1 respondeu: n=E3o conseguimos, hahahahha. Sinceramente agora= : a equipe > n=E3o =E9 t=E3o grande assim. Tem muita gente que contribu=ED apenas ra= ramente.=20 > Ent=E3o > o que eu fa=E7o =E9 receber c=F3digo de todo mundo e ir juntando as par= tes no=20 > meu HD. > Sim, o CVS poderia fazer isto. Mas como eu recebo muito c=F3digo com bu= gs, > at=E9 que o processo atual tem a sua utilidade... Da=ED a importancia de um cvs, algumas pessoas podendo comitar outras=20 n=E3o. Tipo, nem que somente voc=EA possa comitar no cvs, mas da=ED, assi= m que=20 um commit for feito todos ter=E3o o c=F3digo atualizado. Evita-se o "isso= =20 foi corrigido, so nao disponibilizei o c=F3digo!". Algumas pessoas que=20 conhecem bem o sistema teriam a opcao de comitar, logo quem ainda n=E3o=20 estivesse qualificado enviaria as contribuicoes para o pessoal que tem=20 direito de comitar que analisaria o c=F3digo e commitaria ou n=E3o,=20 melhoraria ou nao, e assim vai. =C9 desta forma que =E9 desenvolvido o=20 kernel e a maioria dos sistemas s=E9rios por a=ED. Acho que isto seria um= =20 diferencial e facilitador no desenvolvimento do Notes. > Se tiver mais gente al=E9m de mim que quer usar CVS, vou passar a=20 > disponibilizar por CVS os sources. Obviamente =E9 bem melhor... posso t= entar fazer revis=F5es > ap=F3s os commits, sei l=E1. Podemos pensar em um jeito de isto funcion= ar=20 > melhor. >=20 > Na verdade, o que est=E1 fazendo mais falta mesmo =E9 o nosso bugtracke= r... > (Tu deve ter descoberto o que aconteceu com ele nas msgs antigas) Ok, n=E3o querendo ser chato, mas o que vamos fazer? Que tal o bugzilla?= =20 Que tal eu escrever um bugtracker? Que tal me passar um modelo ou=20 especifica=E7=E3o de como isto funciona para eu escrev=EA-lo? (Nunca fiz = um=20 bugtracker antes ;-) ) -- Shander Lyrio #Equipe do Notes - Fun=E7=E3o: Naum tenho a menor id=E9ia ainda! |
From: Anderson R. B. <and...@po...> - 2004-07-02 04:30:02
|
Shander wrote: Dois zmails. Quanto ao teu elogio ao c=F3digo do Notes, obrigado. Acho que isto =E9 resultado de duas coisas: 1) Jonas & 2) o fato do c=F3digo ser visto por gente demais. Explico: 1) Jonas: um dos programadores mais antigos do Notes. Um dia ele chegou para mim e disse: "to a fim de fazer umas mudan=E7as na arquitetura". E l=E1 se foram meses do Jonas alterando o c=F3digo herdado do Notes 1.5 e transformando em algo bonito de se ver. Depois disto eu adotei um estilo classes-everywere (acho que foi depois de eu ter dado uma olhada em Java) para mostrar que eu tamb=E9m entendia da coisa (risos). O Jonas n=E3o vem contribuindo tanto agora, mas a base da arquitetura atual =E9 dele. Ent=E3o, ele merece todos os aplausos :) 2) O segundo ponto =E9 mais f=E1cil de entender: se voc=EA digita uma linha de c=F3digo no Notes, h=E1 boas chances de que alguns milhares de programadores acabem lendo ela. Ningu=E9m gosta de passar vergonha, ent=E3o... > Acho que seria uma boa id=E9ia o: http://savannah.gnu.org/, j=E1 vem co= m=20 > tudo o que se tem direito desde cvs at=E9 listas e ssh Sim, j=E1 pensei nisto. Mas pelo que eu conhe=E7o do Savannah, o c=F3digo= n=E3o=20 pode ter nenhuma depend=EAncia propriet=E1ria para entrar l=E1 Acho que o fato de usarmos = o=20 Delphi nos pro=EDbe de ser aceitos l=E1... > Opa, j=E1 tinha pego, inclusive compilado e executado o sitema. Ele= =20 > d=E1 um erro fatal nos menus quando voc=EA muda as configura=E7=F5es de= estilo.=20 Conforme est=E1 no f=F3rum, esse bugzim j=E1 t=E1 arrumado aqui... logo v= ou=20 estar liberando os sources novos. > Abri o c=F3digo e verifiquei a falta de uma tal libtidy.dll. Baixei no=20 > site do mantenedor, mas o nome original da biblioteca =E9 tidylib.dll,=20 > renomeei e funcionou legal. Acho que a biblioteca j=E1 poderia estar=20 > incluida no fonte. Ela est=E1, mas n=E3o est=E1 no diret=F3rio correto. Vide o f=F3rum :) > E para terminar uma pergunta que n=E3o quer calar: > Como voces conseguem controlar o c=F3digo do notes sem um cvs, e=20 > naum intendo como isso =E9 poss=EDvel. :-( Voc=EA j=E1 respondeu: n=E3o conseguimos, hahahahha. Sinceramente agora: = a equipe n=E3o =E9 t=E3o grande assim. Tem muita gente que contribu=ED apenas rara= mente.=20 Ent=E3o o que eu fa=E7o =E9 receber c=F3digo de todo mundo e ir juntando as parte= s no=20 meu HD. Sim, o CVS poderia fazer isto. Mas como eu recebo muito c=F3digo com bugs= , at=E9 que o processo atual tem a sua utilidade... Por=E9m o ideal ser=EDamos usar CVS mesmo. Teve uma =E9poca em que escrev= emos (eu e o Victor) tutoriais sobre como usar o CVS (que continuam dispon=EDv= eis ali=E1s em http://notes2.sourceforge.net/dev/wakka.php?wakka=3DHomePage). Se tiver mais gente al=E9m de mim que quer usar CVS, vou passar a=20 disponibilizar por CVS os sources. Obviamente =E9 bem melhor... posso tentar fazer revis= =F5es ap=F3s os commits, sei l=E1. Podemos pensar em um jeito de isto funcionar= =20 melhor. Na verdade, o que est=E1 fazendo mais falta mesmo =E9 o nosso bugtracker.= .. (Tu deve ter descoberto o que aconteceu com ele nas msgs antigas) Abra=E7o, Anderson > > --=20 > Shander Lyrio > #Equipe do Notes - Fun=E7=E3o: Naum tenho a menor id=E9ia ainda! > > > > > ------------------------------------------------------- > This SF.Net email sponsored by Black Hat Briefings & Training. > Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital=20 > self defense, top technical experts, no vendor pitches, unmatched=20 > networking opportunities. Visit www.blackhat.com > _______________________________________________ > notes2-team mailing list > not...@li... > https://lists.sourceforge.net/lists/listinfo/notes2-team > > |
From: Shander <sh...@us...> - 2004-07-01 22:21:08
|
Ap=F3s analisar o hist=F3rico da lista segue: "God! Precisamos de um servidor... o c=F3digo livre vive dando problema e o sourceforge t=E1 cada vez mais com cara de empresa q uma hora dessas vai dizer "agora voc=EA tem que pagar uma assinatura para usar o= s nossos servi=E7os". (Hum... na verdade j=E1 tem o programa de assinatur= as mas =E9 s=F3 para as features "extra"... por enquanto.)" Acho que seria uma boa id=E9ia o: http://savannah.gnu.org/, j=E1 vem com= =20 tudo o que se tem direito desde cvs at=E9 listas e ssh. " 1) Os usu=E1rios do alpha est=E3o reclamando de bugs que est=E3o quase sempre relacionados a instala=E7=E3o do Notes. Eu n=E3o consigo reprodu= zir os bugs aqui e nem encontrar os tais problemas olhando o c=F3digo. Ent=E3= o PE=C7O A TODOS OS DESENOLVEDORES que me ajudem a achar bugs no instalador (frm_NewProfile.pas, frm_Installer.pas)." Eu mesmo foi um que encontrou, mas peguei o c=F3digo e descobri o=20 problema, segue c=F3pia de minha mensagem para o Anderson: Opa, j=E1 tinha pego, inclusive compilado e executado o sitema. Ele=20 d=E1 um erro fatal nos menus quando voc=EA muda as configura=E7=F5es de e= stilo.=20 Abri o c=F3digo e verifiquei a falta de uma tal libtidy.dll. Baixei no=20 site do mantenedor, mas o nome original da biblioteca =E9 tidylib.dll,=20 renomeei e funcionou legal. Acho que a biblioteca j=E1 poderia estar=20 incluida no fonte. E para terminar uma pergunta que n=E3o quer calar: Como voces conseguem controlar o c=F3digo do notes sem um cvs, e naum=20 intendo como isso =E9 poss=EDvel. :-( -- Shander Lyrio #Equipe do Notes - Fun=E7=E3o: Naum tenho a menor id=E9ia ainda! |