From 6cbbce544f28d1fee7dfe2f420d860c81a2188ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Guimar=C3=A3es?= Date: Fri, 9 Oct 2015 22:15:14 -0300 Subject: [PATCH 01/13] Translation to pt-BR of the desktop-environment-integration.md file --- .../desktop-environment-integration.md | 261 ++++++++++++++++++ 1 file changed, 261 insertions(+) create mode 100644 docs-translations/pt-BR/tutorial/desktop-environment-integration.md diff --git a/docs-translations/pt-BR/tutorial/desktop-environment-integration.md b/docs-translations/pt-BR/tutorial/desktop-environment-integration.md new file mode 100644 index 000000000000..2075ef915c9e --- /dev/null +++ b/docs-translations/pt-BR/tutorial/desktop-environment-integration.md @@ -0,0 +1,261 @@ +# Integração com o ambiente desktop + +Diferentes sistemas operacionais proveem diferentes features para integrar +aplicacões desktop em seus ambientes. Por exemplo, no Windows, as aplicações podem +inserir atalhos no JumpList da barra de tarefas, no Mac, aplicações podem implementar um +menu customizado na dock. + +Este guia explica como intregar suas aplicações no ambiente desktop com a API +do Electron. + +## Documentos Recentes (Windows & OS X) + +O Windows e o OS X disponibilizam um acesso fácil para a lista de arquivos +abertos recentemente pela aplicação através do JumpList ou Dock Menu, respectivamente. + +__JumpList:__ + +![JumpList Recent Files](http://i.msdn.microsoft.com/dynimg/IC420538.png) + +__Dock menu da Aplicação:__ + + + +Para adicionar um arquivo para os documentos recentes, você pode usar a API +[app.addRecentDocument][addrecentdocument]: + +```javascript +var app = require('app'); +app.addRecentDocument('/Users/USERNAME/Desktop/work.type'); +``` + +E você pode usar a API [app.clearRecentDocuments][clearrecentdocuments] para +limpar a lista de documentos recentes. + +```javascript +app.clearRecentDocuments(); +``` + +### Notas para Windows + +A fim de ser possível usar essas funcionalidades no Windows, sua aplicação deve +estar registrada como um handler daquele tipo de documento, caso contrário o +arquivo não será exibido no JumpList mesmo depois de você ter adicionado isto. +Você pode encontrar qualquer coisa sobre o registro da aplicacão em +[Application Registration][app-registration]. + +Quando um usuário clica em um arquivo na JumpList, uma nova instância da sua aplicacão +deve ser iniciada com o caminho do arquivo adicionado como um argumento de +linha de comando. + +### Notas para OS X + +Quando um arquivo for requisitado pelo menu de documentos recentes, o evento `open-file` +do módulo `app` deve ser emitido. + +## Dock Menu customizado (OS X) + +OS X permite que desenvolvedores especifiquem um menu customizado para a dock, +que normalmente contém alguns atalhos para as funcionalidades mais utilizadas +da sua aplicacão. + +__Dock menu of Terminal.app:__ + + + +Para criar seu Dock Menu customizado, você pode usar a API `app.dock.setMenu`, +ela está disponível apenas no OS X: + +```javascript +var app = require('app'); +var Menu = require('menu'); +var dockMenu = Menu.buildFromTemplate([ + { label: 'New Window', click: function() { console.log('New Window'); } }, + { label: 'New Window with Settings', submenu: [ + { label: 'Basic' }, + { label: 'Pro'} + ]}, + { label: 'New Command...'} +]); +app.dock.setMenu(dockMenu); +``` + +## Tarefas do Usuário (Windows) + +No Windows você pode especificar ações customizadas na categoria `Tasks` do JumList, +esse texto foi copiado do MSDN: + +> Applications define tasks based on both the program's features and the key +> things a user is expected to do with them. Tasks should be context-free, in +> that the application does not need to be running for them to work. They +> should also be the statistically most common actions that a normal user would +> perform in an application, such as compose an email message or open the +> calendar in a mail program, create a new document in a word processor, launch +> an application in a certain mode, or launch one of its subcommands. An +> application should not clutter the menu with advanced features that standard +> users won't need or one-time actions such as registration. Do not use tasks +> for promotional items such as upgrades or special offers. +> +> It is strongly recommended that the task list be static. It should remain the +> same regardless of the state or status of the application. While it is +> possible to vary the list dynamically, you should consider that this could +> confuse the user who does not expect that portion of the destination list to +> change. + +__Tarefas do Internet Explorer:__ + +![IE](http://i.msdn.microsoft.com/dynimg/IC420539.png) + +Ao contrário do Menu Dock no OS X que é um verdadeiro menu, tarefas do usuário no Windows +funcionam como atalhos, de uma forma que quando o usuário clica em uma tarefa, um programa +deve ser executado com os argumentos especificados. + +Para setar tarefas do usuário para sua aplicação, você pode usar a API +[app.setUserTasks][setusertaskstasks]: + +```javascript +var app = require('app'); +app.setUserTasks([ + { + program: process.execPath, + arguments: '--new-window', + iconPath: process.execPath, + iconIndex: 0, + title: 'New Window', + description: 'Create a new window' + } +]); +``` + +Para limpar sua lista de tarefas, apenas chame `app.setUserTasks` com um +array vazio. + +```javascript +app.setUserTasks([]); +``` + +As tarefas do usuário são exibidas mesmo depois da aplicação ser fechada, +então o ícone e o caminho programa especificado pela tarefa deve existir +até sua aplicação for fechada. + +## Miniaturas na Barra de Ferramentas + +No Windows você pode adicionar uma miniatura na barra de ferramentas com botões +específicos e barra de tarefas com uma janela da aplicação. Isso provê ao usuário +uma forma de acessar um comando específico da janela sem ser necessário restaurar +or ativar a janela. + +Isso é ilustrado no MSDN: + +> This toolbar is simply the familiar standard toolbar common control. It has a +> maximum of seven buttons. Each button's ID, image, tooltip, and state are defined +> in a structure, which is then passed to the taskbar. The application can show, +> enable, disable, or hide buttons from the thumbnail toolbar as required by its +> current state. +> +> For example, Windows Media Player might offer standard media transport controls +> such as play, pause, mute, and stop. + +__Miniaturas da barra de tarefas do Windows Media Player:__ + +![player](https://i-msdn.sec.s-msft.com/dynimg/IC420540.png) + +Você pode usar [BrowserWindow.setThumbarButtons][setthumbarbuttons] para criar +miniaturas na barra de ferramentas para sua aplicacão. + +``` +var BrowserWindow = require('browser-window'); +var path = require('path'); +var win = new BrowserWindow({ + width: 800, + height: 600 +}); +win.setThumbarButtons([ + { + tooltip: "button1", + icon: path.join(__dirname, 'button1.png'), + click: function() { console.log("button2 clicked"); } + }, + { + tooltip: "button2", + icon: path.join(__dirname, 'button2.png'), + flags:['enabled', 'dismissonclick'], + click: function() { console.log("button2 clicked."); } + } +]); +``` + +Para limpar os botões na miniatura da barra de ferramentas, apenas chame +`BrowserWindow.setThumbarButtons` com um array vazio. + +```javascript +win.setThumbarButtons([]); +``` + +## Unity Launcher Shortcuts (Linux) + +No Unity, você pode adicionar entradas customizadas para estes lançadores modificando +o arquivo `.desktop`, veja [Adding Shortcuts to a Launcher][unity-launcher]. + +__Launcher shortcuts do Audacious:__ + +![audacious](https://help.ubuntu.com/community/UnityLaunchersAndDesktopFiles?action=AttachFile&do=get&target=shortcuts.png) + +## Barra de Progresso na Barra de Tarefas (Windows & Unity) + +No Windows o botão na barra de tarefas pode ser usado para exibir uma barra de progresso. +Isto permite que a janela exiba informação sobre o progresso de algum progresso sem +a necessidadedo usuário mudar de janela. + +A Unity DE também tem uma funcionalidade parecida que permite especificar uma barra +de progresso no ícone do lançador. + +__Barra de Progresso no botão da barra de tarefas:__ + +![Barra de Progresso na Barra de Tarefas](https://cloud.githubusercontent.com/assets/639601/5081682/16691fda-6f0e-11e4-9676-49b6418f1264.png) + +__Barra de progresso no Unity launcher:__ + +![Unity Launcher](https://cloud.githubusercontent.com/assets/639601/5081747/4a0a589e-6f0f-11e4-803f-91594716a546.png) + +Para adicionar uma barra de progresso para uma janela, você pode ver a API: +To set the progress bar for a Window, you can use the +[BrowserWindow.setProgressBar][setprogressbar]: + +```javascript +var window = new BrowserWindow({...}); +window.setProgressBar(0.5); +``` + +## Representação do arquivo na janela (OS X) + +No OS X, uma janela pode possuir a representação de um arquivo na barra de título, +para que o ícone do arquivo possa ser exibido na barra de título e uma janela seja +exibida quando o usuário usar um Command-Click ou Control-Click no título. + +Você também pode inserir um estado de edicão na janela para que o ícone do arquivo +possa indicar se o documento nesta janela foi modificado. + +__Menu popup da representação de arquivo:__ + + + +Para inserir o arquivo de representacão da janela, você pode usar as API +[BrowserWindow.setRepresentedFilename][setrepresentedfilename] e +[BrowserWindow.setDocumentEdited][setdocumentedited]: + +```javascript +var window = new BrowserWindow({...}); +window.setRepresentedFilename('/etc/passwd'); +window.setDocumentEdited(true); +``` + +[addrecentdocument]: ../api/app.md#appaddrecentdocumentpath +[clearrecentdocuments]: ../api/app.md#appclearrecentdocuments +[setusertaskstasks]: ../api/app.md#appsetusertaskstasks +[setprogressbar]: ../api/browser-window.md#browserwindowsetprogressbarprogress +[setrepresentedfilename]: ../api/browser-window.md#browserwindowsetrepresentedfilenamefilename +[setdocumentedited]: ../api/browser-window.md#browserwindowsetdocumenteditededited +[app-registration]: http://msdn.microsoft.com/en-us/library/windows/desktop/ee872121(v=vs.85).aspx +[unity-launcher]: https://help.ubuntu.com/community/UnityLaunchersAndDesktopFiles#Adding_shortcuts_to_a_launcher +[setthumbarbuttons]: ../api/browser-window.md#browserwindowsetthumbarbuttonsbuttons From 288572f08e73628225838a06ce2cc22ae00ca7c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Guimar=C3=A3es?= Date: Fri, 9 Oct 2015 22:17:21 -0300 Subject: [PATCH 02/13] README.md updated --- docs-translations/pt-BR/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs-translations/pt-BR/README.md b/docs-translations/pt-BR/README.md index e60d9505a24a..767a9e72d6f5 100644 --- a/docs-translations/pt-BR/README.md +++ b/docs-translations/pt-BR/README.md @@ -10,8 +10,8 @@ ## Tutoriais -* [Introdução](../../docs/tutorial/quick-start.md) -* [A integração com o ambiente de desenvolvimento](../../docs/tutorial/desktop-environment-integration.md) +* [Introdução](tutorial/quick-start.md) +* [A integração com o ambiente de desenvolvimento](tutorial/desktop-environment-integration.md) * [Evento de detecção on-line/off-line](../../docs/tutorial/online-offline-events.md) ## API - Referencias @@ -68,4 +68,4 @@ Módulos de ambos os processos: * [Instrução de build (Mac)](../../docs/development/build-instructions-osx.md) * [Instrução de build (Windows)](../../docs/development/build-instructions-windows.md) * [Instrução de build (Linux)](../../docs/development/build-instructions-linux.md) -* [Configurando um symbol server no debugger](../../docs/development/setting-up-symbol-server.md) \ No newline at end of file +* [Configurando um symbol server no debugger](../../docs/development/setting-up-symbol-server.md) From 4392f1d77c98433c0460f14184d7575aba5dba7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Guimar=C3=A3es?= Date: Fri, 9 Oct 2015 22:47:07 -0300 Subject: [PATCH 03/13] Some fixes --- .../desktop-environment-integration.md | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/docs-translations/pt-BR/tutorial/desktop-environment-integration.md b/docs-translations/pt-BR/tutorial/desktop-environment-integration.md index 2075ef915c9e..9c56cabda2a0 100644 --- a/docs-translations/pt-BR/tutorial/desktop-environment-integration.md +++ b/docs-translations/pt-BR/tutorial/desktop-environment-integration.md @@ -1,17 +1,17 @@ # Integração com o ambiente desktop -Diferentes sistemas operacionais proveem diferentes features para integrar +Diferentes sistemas operacionais possuem diferentes formas de integrar aplicacões desktop em seus ambientes. Por exemplo, no Windows, as aplicações podem inserir atalhos no JumpList da barra de tarefas, no Mac, aplicações podem implementar um menu customizado na dock. -Este guia explica como intregar suas aplicações no ambiente desktop com a API +Este guia explica como integrar suas aplicações no ambiente desktop com a API do Electron. ## Documentos Recentes (Windows & OS X) O Windows e o OS X disponibilizam um acesso fácil para a lista de arquivos -abertos recentemente pela aplicação através do JumpList ou Dock Menu, respectivamente. +abertos recentemente pela aplicação através do JumpList ou Dock Menu respectivamente. __JumpList:__ @@ -38,7 +38,7 @@ app.clearRecentDocuments(); ### Notas para Windows -A fim de ser possível usar essas funcionalidades no Windows, sua aplicação deve +A fim de ser possível usar estas funcionalidades no Windows, sua aplicação deve estar registrada como um handler daquele tipo de documento, caso contrário o arquivo não será exibido no JumpList mesmo depois de você ter adicionado isto. Você pode encontrar qualquer coisa sobre o registro da aplicacão em @@ -57,9 +57,9 @@ do módulo `app` deve ser emitido. OS X permite que desenvolvedores especifiquem um menu customizado para a dock, que normalmente contém alguns atalhos para as funcionalidades mais utilizadas -da sua aplicacão. +da sua aplicação. -__Dock menu of Terminal.app:__ +__Dock menu do Terminal.app:__ @@ -82,7 +82,7 @@ app.dock.setMenu(dockMenu); ## Tarefas do Usuário (Windows) -No Windows você pode especificar ações customizadas na categoria `Tasks` do JumList, +No Windows você pode especificar ações customizadas na categoria `Tasks` do JumpList, esse texto foi copiado do MSDN: > Applications define tasks based on both the program's features and the key @@ -135,17 +135,17 @@ app.setUserTasks([]); ``` As tarefas do usuário são exibidas mesmo depois da aplicação ser fechada, -então o ícone e o caminho programa especificado pela tarefa deve existir -até sua aplicação for fechada. +então o ícone e o caminho do programa especificado pela tarefa deve existir +até sua aplicação ser desinstalada. ## Miniaturas na Barra de Ferramentas No Windows você pode adicionar uma miniatura na barra de ferramentas com botões -específicos e barra de tarefas com uma janela da aplicação. Isso provê ao usuário +específicos para a janela e barra de tarefas para aplicação. Isso provê ao usuário uma forma de acessar um comando específico da janela sem ser necessário restaurar -or ativar a janela. +ou ativar a janela. -Isso é ilustrado no MSDN: +Isto é ilustrado no MSDN: > This toolbar is simply the familiar standard toolbar common control. It has a > maximum of seven buttons. Each button's ID, image, tooltip, and state are defined @@ -161,7 +161,7 @@ __Miniaturas da barra de tarefas do Windows Media Player:__ ![player](https://i-msdn.sec.s-msft.com/dynimg/IC420540.png) Você pode usar [BrowserWindow.setThumbarButtons][setthumbarbuttons] para criar -miniaturas na barra de ferramentas para sua aplicacão. +miniaturas na barra de ferramentas para sua aplicação. ``` var BrowserWindow = require('browser-window'); @@ -204,8 +204,8 @@ __Launcher shortcuts do Audacious:__ ## Barra de Progresso na Barra de Tarefas (Windows & Unity) No Windows o botão na barra de tarefas pode ser usado para exibir uma barra de progresso. -Isto permite que a janela exiba informação sobre o progresso de algum progresso sem -a necessidadedo usuário mudar de janela. +Isto permite que a janela exiba informação sobre o progresso de algum processo sem +a necessidade do usuário mudar de janela. A Unity DE também tem uma funcionalidade parecida que permite especificar uma barra de progresso no ícone do lançador. @@ -219,7 +219,6 @@ __Barra de progresso no Unity launcher:__ ![Unity Launcher](https://cloud.githubusercontent.com/assets/639601/5081747/4a0a589e-6f0f-11e4-803f-91594716a546.png) Para adicionar uma barra de progresso para uma janela, você pode ver a API: -To set the progress bar for a Window, you can use the [BrowserWindow.setProgressBar][setprogressbar]: ```javascript @@ -233,7 +232,7 @@ No OS X, uma janela pode possuir a representação de um arquivo na barra de tí para que o ícone do arquivo possa ser exibido na barra de título e uma janela seja exibida quando o usuário usar um Command-Click ou Control-Click no título. -Você também pode inserir um estado de edicão na janela para que o ícone do arquivo +Você também pode inserir um estado de edição na janela para que o ícone do arquivo possa indicar se o documento nesta janela foi modificado. __Menu popup da representação de arquivo:__ From 1896deb10eda67d8e8cb5188fe0f747fa16fdfeb Mon Sep 17 00:00:00 2001 From: Eran Tiktin Date: Sat, 10 Oct 2015 06:39:02 +0300 Subject: [PATCH 04/13] Fix console.* calls on Windows - Calls for console.* on browser process are printed with no need for --enable-logging - The output is without the logging prefix - The cursor in the terminal is always after the last output - The first output starts on a new line and not at the prompt - console.* from renderer are not printed to cmd - Added a missing '\n' in the default_app help output --- atom/app/atom_main_delegate.cc | 4 ++++ atom/browser/default_app/main.js | 2 +- atom/browser/lib/init.coffee | 2 +- atom/common/api/atom_bindings.cc | 3 ++- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/atom/app/atom_main_delegate.cc b/atom/app/atom_main_delegate.cc index fe3c0e09ae33..6ba1b89837c6 100644 --- a/atom/app/atom_main_delegate.cc +++ b/atom/app/atom_main_delegate.cc @@ -5,6 +5,7 @@ #include "atom/app/atom_main_delegate.h" #include +#include #include "atom/app/atom_content_client.h" #include "atom/browser/atom_browser_client.h" @@ -29,6 +30,9 @@ AtomMainDelegate::~AtomMainDelegate() { bool AtomMainDelegate::BasicStartupComplete(int* exit_code) { logging::LoggingSettings settings; #if defined(OS_WIN) + // On Windows the terminal returns immediately, so we add a new line to + // prevent output in the same line as the prompt. + std::wcout << std::endl; #if defined(DEBUG) // Print logging to debug.log on Windows settings.logging_dest = logging::LOG_TO_ALL; diff --git a/atom/browser/default_app/main.js b/atom/browser/default_app/main.js index e2c29f2d7e69..9cb468182d4d 100644 --- a/atom/browser/default_app/main.js +++ b/atom/browser/default_app/main.js @@ -263,7 +263,7 @@ if (option.file && !option.webdriver) { helpMessage += "A path to an Electron application may be specified. The path must be to \n"; helpMessage += "an index.js file or to a folder containing a package.json or index.js file.\n\n"; helpMessage += "Options:\n"; - helpMessage += " -r, --require Module to preload (option can be repeated)"; + helpMessage += " -r, --require Module to preload (option can be repeated)\n"; helpMessage += " -h, --help Print this usage message.\n"; helpMessage += " -v, --version Print the version."; console.log(helpMessage); diff --git a/atom/browser/lib/init.coffee b/atom/browser/lib/init.coffee index b394c0fecc28..2b6b1bb3c239 100644 --- a/atom/browser/lib/init.coffee +++ b/atom/browser/lib/init.coffee @@ -22,7 +22,7 @@ if process.platform is 'win32' # Redirect node's console to use our own implementations, since node can not # handle console output when running as GUI program. print = (args...) -> - process.log util.format(args...) + process.log util.format(args...) + "\n" console.log = console.error = console.warn = print process.stdout.write = process.stderr.write = print diff --git a/atom/common/api/atom_bindings.cc b/atom/common/api/atom_bindings.cc index d6fb355e09d8..1a44d1af0a0b 100644 --- a/atom/common/api/atom_bindings.cc +++ b/atom/common/api/atom_bindings.cc @@ -6,6 +6,7 @@ #include #include +#include #include "atom/common/atom_version.h" #include "atom/common/chrome_version.h" @@ -40,7 +41,7 @@ void FatalErrorCallback(const char* location, const char* message) { } void Log(const base::string16& message) { - logging::LogMessage("CONSOLE", 0, 0).stream() << message; + std::wcout << message; } } // namespace From b6cfa6f9674e1526f7f60b695259ef70b10aeee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Guimar=C3=A3es?= Date: Sat, 10 Oct 2015 01:20:42 -0300 Subject: [PATCH 05/13] Copying online-offline-events.md file --- .../pt-BR/tutorial/online-offline-events.md | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 docs-translations/pt-BR/tutorial/online-offline-events.md diff --git a/docs-translations/pt-BR/tutorial/online-offline-events.md b/docs-translations/pt-BR/tutorial/online-offline-events.md new file mode 100644 index 000000000000..88f9a32f2ec6 --- /dev/null +++ b/docs-translations/pt-BR/tutorial/online-offline-events.md @@ -0,0 +1,82 @@ +# Online/Offline Event Detection + +Online and offline event detection can be implemented in the renderer process +using standard HTML5 APIs, as shown in the following example. + +_main.js_ + +```javascript +var app = require('app'); +var BrowserWindow = require('browser-window'); +var onlineStatusWindow; + +app.on('ready', function() { + onlineStatusWindow = new BrowserWindow({ width: 0, height: 0, show: false }); + onlineStatusWindow.loadUrl('file://' + __dirname + '/online-status.html'); +}); +``` + +_online-status.html_ + +```html + + + + + + +``` + +There may be instances where you want to respond to these events in the +main process as well. The main process however does not have a +`navigator` object and thus cannot detect these events directly. Using +Electron's inter-process communication utilities, the events can be forwarded +to the main process and handled as needed, as shown in the following example. + +_main.js_ + +```javascript +var app = require('app'); +var ipc = require('ipc'); +var BrowserWindow = require('browser-window'); +var onlineStatusWindow; + +app.on('ready', function() { + onlineStatusWindow = new BrowserWindow({ width: 0, height: 0, show: false }); + onlineStatusWindow.loadUrl('file://' + __dirname + '/online-status.html'); +}); + +ipc.on('online-status-changed', function(event, status) { + console.log(status); +}); +``` + +_online-status.html_ + +```html + + + + + + +``` From c71efc8ca54b1f7f4de799eca8c0e49bb558c2e7 Mon Sep 17 00:00:00 2001 From: Eran Tiktin Date: Sat, 10 Oct 2015 08:13:27 +0300 Subject: [PATCH 06/13] Fix `process.std*.write` - Support printing Buffer - Don't add '\n' at the end the chunk --- atom/browser/lib/init.coffee | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/atom/browser/lib/init.coffee b/atom/browser/lib/init.coffee index 2b6b1bb3c239..9f92d700c73a 100644 --- a/atom/browser/lib/init.coffee +++ b/atom/browser/lib/init.coffee @@ -21,10 +21,15 @@ globalPaths.push path.resolve(__dirname, '..', 'api', 'lib') if process.platform is 'win32' # Redirect node's console to use our own implementations, since node can not # handle console output when running as GUI program. - print = (args...) -> + consoleLog = (args...) -> process.log util.format(args...) + "\n" - console.log = console.error = console.warn = print - process.stdout.write = process.stderr.write = print + streamWrite = (chunk, encoding, callback) -> + chunk = chunk.toString(encoding) if Buffer.isBuffer chunk + process.log chunk + callback() if callback + true + console.log = console.error = console.warn = consoleLog + process.stdout.write = process.stderr.write = streamWrite # Always returns EOF for stdin stream. Readable = require('stream').Readable From df12f181a4311a4ffd08079c4a302bdebf00a5ac Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Sat, 10 Oct 2015 17:43:38 +0800 Subject: [PATCH 07/13] Can not print string16 in wcout on POSIX --- atom/common/api/atom_bindings.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/atom/common/api/atom_bindings.cc b/atom/common/api/atom_bindings.cc index 1a44d1af0a0b..8fb2efd3a3f9 100644 --- a/atom/common/api/atom_bindings.cc +++ b/atom/common/api/atom_bindings.cc @@ -41,7 +41,7 @@ void FatalErrorCallback(const char* location, const char* message) { } void Log(const base::string16& message) { - std::wcout << message; + std::cout << message; } } // namespace From 6d20d37101f6db3579452df2a63d6a257a1f881b Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Sat, 10 Oct 2015 17:37:25 +0800 Subject: [PATCH 08/13] Bump v0.33.7 --- atom.gyp | 2 +- atom/browser/resources/mac/Info.plist | 2 +- atom/browser/resources/win/atom.rc | 8 ++++---- atom/common/atom_version.h | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/atom.gyp b/atom.gyp index f06a0c8251be..f5933b8631ec 100644 --- a/atom.gyp +++ b/atom.gyp @@ -4,7 +4,7 @@ 'product_name%': 'Electron', 'company_name%': 'GitHub, Inc', 'company_abbr%': 'github', - 'version%': '0.33.6', + 'version%': '0.33.7', }, 'includes': [ 'filenames.gypi', diff --git a/atom/browser/resources/mac/Info.plist b/atom/browser/resources/mac/Info.plist index 50e019c1c77e..77a5502de1eb 100644 --- a/atom/browser/resources/mac/Info.plist +++ b/atom/browser/resources/mac/Info.plist @@ -17,7 +17,7 @@ CFBundleIconFile atom.icns CFBundleVersion - 0.33.6 + 0.33.7 LSMinimumSystemVersion 10.8.0 NSMainNibFile diff --git a/atom/browser/resources/win/atom.rc b/atom/browser/resources/win/atom.rc index b1aba451dcf6..39085d2ed8a1 100644 --- a/atom/browser/resources/win/atom.rc +++ b/atom/browser/resources/win/atom.rc @@ -56,8 +56,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,33,6,0 - PRODUCTVERSION 0,33,6,0 + FILEVERSION 0,33,7,0 + PRODUCTVERSION 0,33,7,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -74,12 +74,12 @@ BEGIN BEGIN VALUE "CompanyName", "GitHub, Inc." VALUE "FileDescription", "Electron" - VALUE "FileVersion", "0.33.6" + VALUE "FileVersion", "0.33.7" VALUE "InternalName", "electron.exe" VALUE "LegalCopyright", "Copyright (C) 2015 GitHub, Inc. All rights reserved." VALUE "OriginalFilename", "electron.exe" VALUE "ProductName", "Electron" - VALUE "ProductVersion", "0.33.6" + VALUE "ProductVersion", "0.33.7" VALUE "SquirrelAwareVersion", "1" END END diff --git a/atom/common/atom_version.h b/atom/common/atom_version.h index 8078551b90ed..995a6f916b1d 100644 --- a/atom/common/atom_version.h +++ b/atom/common/atom_version.h @@ -7,7 +7,7 @@ #define ATOM_MAJOR_VERSION 0 #define ATOM_MINOR_VERSION 33 -#define ATOM_PATCH_VERSION 6 +#define ATOM_PATCH_VERSION 7 #define ATOM_VERSION_IS_RELEASE 1 From 0cd1195eea926a0650dcc77c4141acd5a0b88c8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Guimar=C3=A3es?= Date: Sat, 10 Oct 2015 13:41:32 -0300 Subject: [PATCH 09/13] online-offline-events.md translated to pt-BR --- .../pt-BR/tutorial/online-offline-events.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/docs-translations/pt-BR/tutorial/online-offline-events.md b/docs-translations/pt-BR/tutorial/online-offline-events.md index 88f9a32f2ec6..36b45dc00ffd 100644 --- a/docs-translations/pt-BR/tutorial/online-offline-events.md +++ b/docs-translations/pt-BR/tutorial/online-offline-events.md @@ -1,7 +1,8 @@ # Online/Offline Event Detection -Online and offline event detection can be implemented in the renderer process -using standard HTML5 APIs, as shown in the following example. +Os eventos de detecão Online e Offile podem ser implementados no processo +de renderização utilizando a API padrão do HTML, como é mostrado no exemplo +a seguir. _main.js_ @@ -36,11 +37,11 @@ _online-status.html_ ``` -There may be instances where you want to respond to these events in the -main process as well. The main process however does not have a -`navigator` object and thus cannot detect these events directly. Using -Electron's inter-process communication utilities, the events can be forwarded -to the main process and handled as needed, as shown in the following example. +Pode haver casos onde você também deseja responder a estes eventos no processo principal. +Mas o processo principal não consegue detectar esses eventos diretamente, pois não possui +um objeto `navigator`. Utilizando a ferramentas para comunicação entre processos, os eventos +podem ser direcionados para o processo principal e manipulados quando necessário. Você +pode ser isto no exemplo abaixo. _main.js_ From 692816f9d257e4ae82902fc68827a64e288ac555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Guimar=C3=A3es?= Date: Sat, 10 Oct 2015 14:01:55 -0300 Subject: [PATCH 10/13] online-offline-events.md translated to pt-BR --- docs-translations/pt-BR/README.md | 2 +- .../tutorial/desktop-environment-integration.md | 12 ++++++------ .../pt-BR/tutorial/online-offline-events.md | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs-translations/pt-BR/README.md b/docs-translations/pt-BR/README.md index 767a9e72d6f5..74923a411c5d 100644 --- a/docs-translations/pt-BR/README.md +++ b/docs-translations/pt-BR/README.md @@ -12,7 +12,7 @@ * [Introdução](tutorial/quick-start.md) * [A integração com o ambiente de desenvolvimento](tutorial/desktop-environment-integration.md) -* [Evento de detecção on-line/off-line](../../docs/tutorial/online-offline-events.md) +* [Evento de detecção on-line/off-line](tutorial/online-offline-events.md) ## API - Referencias diff --git a/docs-translations/pt-BR/tutorial/desktop-environment-integration.md b/docs-translations/pt-BR/tutorial/desktop-environment-integration.md index 9c56cabda2a0..20a78d32d537 100644 --- a/docs-translations/pt-BR/tutorial/desktop-environment-integration.md +++ b/docs-translations/pt-BR/tutorial/desktop-environment-integration.md @@ -39,7 +39,7 @@ app.clearRecentDocuments(); ### Notas para Windows A fim de ser possível usar estas funcionalidades no Windows, sua aplicação deve -estar registrada como um handler daquele tipo de documento, caso contrário o +estar registrada como um handler daquele tipo de documento, caso contrário, o arquivo não será exibido no JumpList mesmo depois de você ter adicionado isto. Você pode encontrar qualquer coisa sobre o registro da aplicacão em [Application Registration][app-registration]. @@ -51,7 +51,7 @@ linha de comando. ### Notas para OS X Quando um arquivo for requisitado pelo menu de documentos recentes, o evento `open-file` -do módulo `app` deve ser emitido. +do módulo `app` irá ser emitido. ## Dock Menu customizado (OS X) @@ -82,7 +82,7 @@ app.dock.setMenu(dockMenu); ## Tarefas do Usuário (Windows) -No Windows você pode especificar ações customizadas na categoria `Tasks` do JumpList, +No Windows você pode especificar ações customizadas na categoria `Tarefas` do JumpList, esse texto foi copiado do MSDN: > Applications define tasks based on both the program's features and the key @@ -142,7 +142,7 @@ até sua aplicação ser desinstalada. No Windows você pode adicionar uma miniatura na barra de ferramentas com botões específicos para a janela e barra de tarefas para aplicação. Isso provê ao usuário -uma forma de acessar um comando específico da janela sem ser necessário restaurar +uma forma de acessar um comando específico para janela sem ser necessário restaurar ou ativar a janela. Isto é ilustrado no MSDN: @@ -229,8 +229,8 @@ window.setProgressBar(0.5); ## Representação do arquivo na janela (OS X) No OS X, uma janela pode possuir a representação de um arquivo na barra de título, -para que o ícone do arquivo possa ser exibido na barra de título e uma janela seja -exibida quando o usuário usar um Command-Click ou Control-Click no título. +permitindo que ao usuário acionar um Command-Click ou Control-Click sobre o título da janela, +uma pop-up de navegação entre arquivos é exibida. Você também pode inserir um estado de edição na janela para que o ícone do arquivo possa indicar se o documento nesta janela foi modificado. diff --git a/docs-translations/pt-BR/tutorial/online-offline-events.md b/docs-translations/pt-BR/tutorial/online-offline-events.md index 36b45dc00ffd..294a62e7a81c 100644 --- a/docs-translations/pt-BR/tutorial/online-offline-events.md +++ b/docs-translations/pt-BR/tutorial/online-offline-events.md @@ -41,7 +41,7 @@ Pode haver casos onde você também deseja responder a estes eventos no processo Mas o processo principal não consegue detectar esses eventos diretamente, pois não possui um objeto `navigator`. Utilizando a ferramentas para comunicação entre processos, os eventos podem ser direcionados para o processo principal e manipulados quando necessário. Você -pode ser isto no exemplo abaixo. +pode ver isto no exemplo abaixo. _main.js_ From 4e8db2c3be8f3c9a172fb87ad8739493ab3dfbb1 Mon Sep 17 00:00:00 2001 From: Eran Tiktin Date: Sat, 10 Oct 2015 20:17:08 +0300 Subject: [PATCH 11/13] Go back to using node's console.* and std*.write It seems that whatever issues we had with using the original implementation of node for `console.*` calls and for `process.std*.write` on Windows were solved. So I removed the patch. Tested it with cmd, cygwin and used spawn and exec and everything seems to work (except for colors/ansi escape codes, but that didn't work before anyway). --- atom/browser/lib/init.coffee | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/atom/browser/lib/init.coffee b/atom/browser/lib/init.coffee index 9f92d700c73a..67630a1bd6fa 100644 --- a/atom/browser/lib/init.coffee +++ b/atom/browser/lib/init.coffee @@ -18,25 +18,6 @@ require path.resolve(__dirname, '..', '..', 'common', 'lib', 'init') globalPaths = Module.globalPaths globalPaths.push path.resolve(__dirname, '..', 'api', 'lib') -if process.platform is 'win32' - # Redirect node's console to use our own implementations, since node can not - # handle console output when running as GUI program. - consoleLog = (args...) -> - process.log util.format(args...) + "\n" - streamWrite = (chunk, encoding, callback) -> - chunk = chunk.toString(encoding) if Buffer.isBuffer chunk - process.log chunk - callback() if callback - true - console.log = console.error = console.warn = consoleLog - process.stdout.write = process.stderr.write = streamWrite - - # Always returns EOF for stdin stream. - Readable = require('stream').Readable - stdin = new Readable - stdin.push null - process.__defineGetter__ 'stdin', -> stdin - # Don't quit on fatal error. process.on 'uncaughtException', (error) -> # Do nothing if the user has a custom uncaught exception handler. From cb903a09c0cd281f2cb934afe981b7a4f37d8bc3 Mon Sep 17 00:00:00 2001 From: Eran Tiktin Date: Sat, 10 Oct 2015 20:44:22 +0300 Subject: [PATCH 12/13] Block all internal logs when running without `--enable-logging` --- atom/app/atom_main_delegate.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/atom/app/atom_main_delegate.cc b/atom/app/atom_main_delegate.cc index 6ba1b89837c6..639340bcf091 100644 --- a/atom/app/atom_main_delegate.cc +++ b/atom/app/atom_main_delegate.cc @@ -48,8 +48,10 @@ bool AtomMainDelegate::BasicStartupComplete(int* exit_code) { // Only enable logging when --enable-logging is specified. auto command_line = base::CommandLine::ForCurrentProcess(); - if (!command_line->HasSwitch(switches::kEnableLogging)) + if (!command_line->HasSwitch(switches::kEnableLogging)) { settings.logging_dest = logging::LOG_NONE; + logging::SetMinLogLevel(logging::LOG_NUM_SEVERITIES); + } logging::InitLogging(settings); From 36bbf5d51fe249fd02ceef359eb9eeac5d730c62 Mon Sep 17 00:00:00 2001 From: "Philipp A." Date: Sun, 11 Oct 2015 15:18:27 +0200 Subject: [PATCH 13/13] fixed devtools instructions --- docs/tutorial/devtools-extension.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/tutorial/devtools-extension.md b/docs/tutorial/devtools-extension.md index e9466f14b648..20ba7031d8ad 100644 --- a/docs/tutorial/devtools-extension.md +++ b/docs/tutorial/devtools-extension.md @@ -16,11 +16,13 @@ $ cd /some-directory $ git clone --recursive https://github.com/facebook/react-devtools.git ``` +Follow the instructions in [`react-devtools/shells/chrome/Readme.md`](https://github.com/facebook/react-devtools/blob/master/shells/chrome/Readme.md) to build the extension. + Then you can load the extension in Electron by opening DevTools in any window, and running the following code in the DevTools console: ```javascript -require('remote').require('browser-window').addDevToolsExtension('/some-directory/react-devtools'); +require('remote').require('browser-window').addDevToolsExtension('/some-directory/react-devtools/shells/chrome'); ``` To unload the extension, you can call the `BrowserWindow.removeDevToolsExtension`