fechando diálogos modais
<p>encontro diálogos modais todos os dias e vejo implementações diferentes o tempo todo.</p><p>a maioria das caixas de diálogo modais tem um [x] no canto superior direito da caixa de diálogo junto com um botão cancelar/fechar.</p><p>existem tantas opções, qual é a melhor prática para fechar diálogos modais? além disso, existem estudos para referenciar mostrando o que é preferido?</p><p>implementações que eu já vi:</p><ul> <li> <p>botão cancelar/fechar com [x] no canto (superior direito/esquerdo, inferior direito/esquerdo?)</p> </li> <li> <p>clique em qualquer lugar do modal para fechar</p> </li> <li> <p>apenas um [x] no canto (superior direito/esquerdo, inferior direito/esquerdo?)</p> </li> <li> <p>apenas um botão cancelar/fechar</p> </li> <li> <p>clique em qualquer lugar fora do modal</p> </li> <li> <p>tecla esc com ou sem [x]/cancelar/fechar</p> </li> </ul>
<p>eu acho que a melhor implementação depende do tipo de diálogo e do modo de interação desejado.</p><p><strong>diálogos que requerem uma ação</strong> não devem ter um [x] para fechá-los, na minha opinião (nem devem ser fechados clicando em qualquer outro lugar que não seja nos botões de ação).<br> a maioria deles possui um conjunto de botões "salvar" e "cancelar", de modo que os usuários pensam (mesmo que por uma fração de segundo) se "fechar" significa "cancelar" ou não.</p><p><strong>caixas de diálogo de informações</strong> deve ter um botão "fechar" e um [x], na minha opinião.<br> se a informação é algo que o usuário pode querer <strong>interagir com</strong> (por exemplo, texto a ser selecionado e copiado), é claro que você não pode permitir que um clique dentro dela feche a caixa de diálogo.<br> se você deseja que o usuário <strong>preste atenção</strong> as informações, eu também proibiria que os cliques do lado de fora fossem descartados, pois isso aumenta a chance de o usuário focar na caixa de diálogo para fechá-la (e espero ler algo lá).</p>
segue a resposta:

[imagem]

['reabilitar' categoria off](https://plus.diolinux.com.br/t/reabilitar-categoria-off/24572/13) [site feedback](/c/site-feedback/3)

quando um tópico está mudando o foco e indo para um lado hostil, acabo colocando para fechar automaticamente em 5hs, mas acabei de ver que é possível sim colocar para apagar as mensagens de acordo com um … <p>fala ai allan, tudo bem? acredito que seja apenas uma questão de versão mesmo.</p>
<p><a href="https://www.electronjs.org/docs/api/browser-window#evento-close" rel="nofollow">https://www.electronjs.org/docs/api/browser-window#evento-close</a></p>
<p>nesse <em>link</em> informa que existe o evento <code>close</code>, ele será emitido quando a janela estiver para ser fechada.</p>
<p>espero ter ajudado.</p> passa como parâmetro o handle do form que você deseja fechar. digamos estando no form frmodelocadastro você está criando o form frcadastroempresa, então ficaria assim:[code:1:c817ebc200]postmessage(fr... crie um método público no seu form principal e faça a chamada de onde quiser.procedure fechar();begin if( application.messagebox(deseja sair?, sair, mb\_yesno+mb\_iconquestion) = id\_yes) then ... <h2>configurando a ordem de caixas meta em páginas de edição de postagem</h2><p>você precisará remover as caixas meta e adicioná-las novamente na ordem desejada.</p><p>para desabilitar caixas meta: (personalize para suas necessidades, olhe o id do metabox no código html para saber qual nome você deve usar como primeiro parâmetro das funções)</p><pre><code>function my\_remove\_meta\_boxes() { remove\_meta\_box('postcustom', 'post', 'core'); remove\_meta\_box('commentsdiv', 'post', 'core'); ... } add\_action( 'admin\_menu', 'my\_remove\_meta\_boxes' ); </code></pre><p>depois de removê-los, você pode usar a função add\_meta\_box para adicioná-los em novas posições: <a href="http://codex.wordpress.org/function\_reference/add\_meta\_box">http://codex.wordpress.org/function\_reference/add\_meta\_box</a> . a ordem das caixas meta depende da ordem em que você chama a função add\_meta\_box. por exemplo: com o seguinte trecho de código, a caixa meta de comentários será antes da caixa meta de campos personalizados.</p><pre><code>function my\_add\_meta\_boxes( $post\_type, $post ) { if ( ('publish' == $post-&gt;post\_status || 'private' == $post-&gt;post\_status) &amp;&amp; post\_type\_supports($post\_type, 'comments') ) add\_meta\_box('commentsdiv', \_\_('comments'), 'post\_comment\_meta\_box', $post\_type, 'normal', 'core'); if ( post\_type\_supports($post\_type, 'custom-fields') ) add\_meta\_box('postcustom', \_\_('custom fields'), 'post\_custom\_meta\_box', $post\_type, 'normal', 'core'); ... } add\_action( 'add\_meta\_boxes', 'my\_add\_meta\_boxes' ); </code></pre><p>você pode querer olhar para o arquivo wp-admin/edit-form-advanced.php</p><h2>definir qual título de coluna aparece na página da lista de postagens</h2><p>você precisa usar o filtro manage \_ {$ post\_type} \_posts\_columns. por exemplo: o fragmento a seguir removerá a coluna de comentários.</p><pre><code>function my\_remove\_columns( $posts\_columns ) { unset( $posts\_columns['comments'] ); return $posts\_columns; } add\_filter( 'manage\_post\_posts\_columns', 'my\_remove\_columns' ); </code></pre><h2>definir os resultados padrão a serem mostrados na página da lista de postagens</h2><p>use os filtros 'edit \_ {$ post\_type} \_per\_page' e 'edit\_posts\_per\_page'.</p><pre><code>function my\_edit\_post\_per\_page( $per\_page, $post\_type ) { $edit\_per\_page = 'edit\_' . $post\_type . '\_per\_page'; $per\_page = (int) get\_user\_option( $edit\_per\_page ); if ( empty( $per\_page ) || $per\_page &lt; 1 ) $per\_page = 1; return $per\_page; } add\_filter( 'edit\_posts\_per\_page', 'my\_edit\_post\_per\_page' ); </code></pre><p>para segmentar um tipo de postagem específico:</p><ul> <li> <p>use <code>add\_filter( 'edit\_{post type}\_per\_page', 'my\_edit\_post\_per\_page' );</code>, por exemplo <code>add\_filter( 'edit\_post\_per\_page', 'my\_edit\_post\_per\_page' );</code> para posts, <code>add\_filter( 'edit\_page\_per\_page', 'my\_edit\_post\_per\_page' );</code> para páginas.</p> </li> <li> <p>ou use uma condição dentro de sua função. por exemplo.:</p> <p>function my\_edit\_post\_per\_page ($ per\_page, $ post\_type) {</p> <pre><code>if( $post\_type == 'post' ) { $edit\_per\_page = 'edit\_' . $post\_type . '\_per\_page'; $per\_page = (int) get\_user\_option( $edit\_per\_page ); if ( empty( $per\_page ) || $per\_page &lt; 1 ) $per\_page = 1; } return $per\_page; </code></pre></li> </ul> ei [@rodrigo\_valentim](/u/rodrigo_valentim)! tudo certo?

o bruno tá te ajudando com essa questão nesse outro tópico, certo?

[imagem]

[botões em conversas no whatsapp](https://forum.blip.ai/t/botoes-em-conversas-no-whatsapp/5225) [dúvidas/questions](/c/questions/13)

esses botões já estão disponíveis no builder?

vou deixar esse link aqui para que, caso algum blipper ven… <p><strong> @ bowe </strong></p><p>você precisaria criar uma matriz na sua função de opções para a caixa de seleção e atribuir a ela um id como um estado padrão e atribuir o tipo de "caixa de seleção" a ela. aqui está uma amostra supondo que você já tenha o código em vigor para o painel de administração</p><pre><code>&lt;?php // set variables for the options panel $themename = "your\_theme\_name"; $themeshortname = "yt"; $mythemeoptions = array(); //the option function function cool\_theme\_options() { global $themename, $themeshortname, $mythemeoptions; $themeoptions = array ( array( "name" =&gt; \_\_('show featured content slider','your\_theme\_name'), "desc" =&gt; \_\_('when checked, the slider will be added to the home page.','your\_theme\_name'), "id" =&gt; "show\_featured\_slider", "std" =&gt; "false", "type" =&gt; "checkbox" ), ); } //the option form function my\_cool\_theme\_admin() { global $themename, $themeshortname, $themeoptions; // saved or updated message if ( $\_request['saved'] ) echo '&lt;div id="message" class="updated fade"&gt;&lt;p&gt;&lt;strong&gt;'.$themename.' settings saved.&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;'; if ( $\_request['reset'] ) echo '&lt;div id="message" class="updated fade"&gt;&lt;p&gt;&lt;strong&gt;'.$themename.' settings reset.&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;'; // the form ?&gt; &lt;div class="wrap"&gt; &lt;h2&gt;&lt;?php echo $themename; ?&gt; options&lt;/h2&gt; &lt;form method="post"&gt; &lt;?php wp\_nonce\_field('theme-save'); ?&gt; &lt;table class="form-table"&gt; &lt;?php foreach ($themeoptions as $value) { // output the appropriate form element switch ( $value['type'] ) { case 'text': ?&gt; &lt;tr valign="top"&gt; &lt;th scope="row"&gt;&lt;?php echo $value['name']; ?&gt;:&lt;/th&gt; &lt;td&gt; &lt;?php foreach ($value['options'] as $key=&gt;$option) { if ($key == get\_option($value['id'], $value['std']) ) { $checked = "checked=\"checked\""; } else { $checked = ""; } ?&gt; &lt;input type="radio" name="&lt;?php echo $value['id']; ?&gt;" value="&lt;?php echo $key; ?&gt;" &lt;?php echo $checked; ?&gt; /&gt;&lt;?php echo $option; ?&gt;&lt;br /&gt; &lt;?php } ?&gt; &lt;?php echo $value['desc']; ?&gt; &lt;/td&gt; &lt;/tr&gt; &lt;?php break; case "checkbox": ?&gt; &lt;tr valign="top"&gt; &lt;th scope="row"&gt;&lt;?php echo $value['name']; ?&gt;&lt;/th&gt; &lt;td&gt; &lt;?php if(get\_option($value['id'])){ $checked = "checked=\"checked\""; } else { $checked = ""; } ?&gt; &lt;input type="checkbox" name="&lt;?php echo $value['id']; ?&gt;" id="&lt;?php echo $value['id']; ?&gt;" value="true" &lt;?php echo $checked; ?&gt; /&gt; &lt;?php echo $value['desc']; ?&gt; &lt;/td&gt; &lt;/tr&gt; &lt;?php break; default: break; } } ?&gt; &lt;/table&gt; &lt;p class="submit"&gt; &lt;input name="save" type="submit" value="save changes" class="button-primary" /&gt; &lt;input type="hidden" name="action" value="save" /&gt; &lt;/p&gt; &lt;/form&gt; &lt;form method="post"&gt; &lt;?php wp\_nonce\_field('theme-reset'); ?&gt; &lt;p class="submit"&gt; &lt;input name="reset" type="submit" value="reset" /&gt; &lt;input type="hidden" name="action" value="reset" /&gt; &lt;/p&gt; &lt;/form&gt; </code></pre><p>em seguida, adicione a função em functions.php que chama o controle deslizante se a caixa estiver marcada.</p><pre><code>&lt;?php function cool\_theme\_slider\_option() { // load the custom options global $themeoptions; foreach ($themeoptions as $value) { $$value['id'] = get\_option($value['id'], $value['std']); } if ($show\_featured\_slider == 'true') { locate\_template( array( 'includes/slider.php'), true ) } } // end function add\_action('wp\_head', 'cool\_theme\_slider\_option'); ?&gt; </code></pre><p>este código não foi verificado para ter certeza de que funciona exatamente como está, mas destinado a mostrar um exemplo para usar uma opção de caixa de seleção no seu tema.</p> <p>você deve usar somente <strong> <a href="https://www.sevenforums.com/tutorials/487-snap-window-side.html">atalhos de teclado</a> </strong> para essa configuração, já que os movimentos do mouse sozinhos não são compatíveis com esse lado especial que passa para o outro monitor.</p><blockquote> <p>nota: em vários monitores, pressionar continuamente uma combinação de atalho de teclado abaixo fará com que a janela se encaixe lateralmente e role nessa direção pelas várias telas do monitor.</p> <ul> <li> <p><kbd>windows key</kbd> + <kbd>&larr;</kbd><br> isto irá encaixar a janela atual no lado esquerdo da tela, ou soltar uma janela que é encaixada no lado direito da tela.</p> </li> <li> <p><kbd>windows key</kbd> + <kbd>&rarr;</kbd><br> isso fará com que a janela atual fique do lado direito da tela ou solte uma janela que é encaixada no lado esquerdo da tela.</p> </li> </ul> </blockquote> <p>olá nádia,</p>
<p>muito interessante o atalho. o mesmo pode ser feito nos programas do pacote adobe ao apertar alt.</p>
<p>abçs,</p>
<p>gustavo diuana</p> <p><strong> passo 0: </strong> aprender a tocar no tipo. sério - se seus dedos não sabem onde estão as chaves, então vim vai ser uma dor. e mesmo se você rejeitar o vim, a digitação irá melhorar sua programação (pergunte <a href="http://steve-yegge.blogspot.com/2008/09/programmings-dirtiest-little-secret.html">steve yegge</a> ), fazendo com que a mente monitore o atrito do link gratuitamente. existe um <a href="https://stackoverflow.com/questions/410880/how-do-i-improve-my-typing-skills">lote</a> de <a href="https://stackoverflow.com/questions/10475/touch-typing-software-recommendations">software</a> que pode <a href="https://askubuntu.com/questions/32276/are-there-any-good-typing-tutors">ajudar</a> você <a href="https://askubuntu.com/questions/14673/typing-tutor-games-with-good-playablity">melhorar</a> sua digitação.</p><p><strong> passo 1: </strong> use as preferências do teclado para trocar caps lock e escape - a sério, com que frequência você usa o caps lock? usando o vim você estará usando o escape o tempo todo, e tê-lo disponível na linha inicial faz uma enorme diferença. com o desktop padrão do ubuntu, percorra os menus: sistema -&gt; preferências -&gt; teclado -&gt; guia layouts. em seguida, aperte o botão "opções de layout", clique no triângulo ao lado de "comportamento da tecla caps lock" e selecione "swap esc e capslock". (observe como isso mudou - <a href="https://askubuntu.com/questions/444714/how-do-i-swap-escape-and-caps-lock-in-14-04">veja como fazer isso em 14.04</a> .</p><p><strong> passo 2: </strong> use <strong> vimtutor </strong> para você começar. está no gvim (sob o menu de ajuda eu acho) ou você pode simplesmente digitar 'vimtutor' na linha de comando. ele levará de 30 a 45 minutos do seu tempo e, em seguida, seus dedos saberão o básico do vi/vim e você poderá editar os arquivos sem ter que jogar o teclado pela janela.</p><p><strong> passo 3: </strong> use o vim em todos os lugares. vejo <s> <a href="https://stackoverflow.com/questions/826208/making-vim-ubiquitous">esta questão do stackoverflow</a> </s> para dicas e links para usar vim e vi chaves na linha de comando, do seu navegador, para compor e-mails, no seu ide ... você precisa usar o vim para incorporar as chaves em seu músculo memória.</p><p><strong> passo 4: </strong> saiba mais sobre o vim. você só terá arranhado a superfície com o vimtutor. você pode</p><ul> <li>assista a screencasts em <a href="http://vimcasts.org/">vimcasts</a> ou aqueles por <a href="http://www.derekwyatt.org/vim/vim-tutorial-videos/">derek wyatt</a> ;</li> <li> <a href="http://video.google.com/videoplay?docid=2538831956647446078">assista a este vídeo</a> ou leia <a href="http://www.moolenaar.net/habits.html">este artigo</a> (ambos sobre os "sete hábitos de edição efetiva de texto";</li> <li> <a href="https://stackoverflow.com/questions/164847/what-is-in-your-vimrc">leia</a> sobre <a href="https://stackoverflow.com/questions/95072/what-are-your-favorite-vim-tricks">alguns</a> de <a href="https://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim/1220118#1220118">o</a> many <a href="https://stackoverflow.com/questions/20735/useful-vim-features">tips</a> e <a href="https://stackoverflow.com/questions/726894/vim-tricks-your-mom-never-told-you-about-dark-corners">truques</a> on <a href="https://stackoverflow.com/questions/tagged/vim?sort=votes">stackoverflow</a> ;</li> <li>navegue <a href="http://vim.wikia.com/wiki/main\_page">vimtips</a> .</li> </ul><p>aprender um pouco, muitas vezes, seria o meu conselho - há tanta coisa lá fora que se agarrar a pedaços pequenos será a melhor maneira de fazer o conhecimento ficar.</p><p><strong> passo 5: </strong> lucro :)</p>