diff --git a/.gitignore b/.gitignore index 3c8c0fe5c..d88f1f2da 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,4 @@ nbproject build/macosx/esptool-*-osx.zip build/macosx/dist/osx-xtensa-lx106-elf.tgz +/hardware/esp8266com/esp8266/tools diff --git a/app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.form b/app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.form index 0d47750a3..a8b6eb4bd 100644 --- a/app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.form +++ b/app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.form @@ -3,7 +3,9 @@
- + + + @@ -32,12 +34,16 @@ - + + + + + @@ -47,7 +53,9 @@ - + + + @@ -82,7 +90,9 @@ - + + + @@ -94,7 +104,9 @@ - + + + @@ -104,5 +116,16 @@ + + + + + + + + + + + diff --git a/app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java b/app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java index a75e1c8b4..c4ed51e02 100644 --- a/app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java +++ b/app/src/cc/arduino/view/preferences/AdditionalBoardsManagerURLTextArea.java @@ -74,6 +74,7 @@ public class AdditionalBoardsManagerURLTextArea extends javax.swing.JDialog { javax.swing.JScrollPane jScrollPane1 = new javax.swing.JScrollPane(); javax.swing.JButton cancel = new javax.swing.JButton(); javax.swing.JButton ok = new javax.swing.JButton(); + javax.swing.JLabel jLabel1 = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle(_("Additional Boards Manager URLs")); @@ -99,6 +100,8 @@ public class AdditionalBoardsManagerURLTextArea extends javax.swing.JDialog { } }); + jLabel1.setText(_("Enter additional URLs, one for each row")); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( @@ -107,18 +110,23 @@ public class AdditionalBoardsManagerURLTextArea extends javax.swing.JDialog { .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addGap(0, 439, Short.MAX_VALUE) + .addGap(0, 332, Short.MAX_VALUE) .addComponent(ok) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(cancel)) - .addComponent(jScrollPane1)) + .addComponent(jScrollPane1) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel1) + .addGap(0, 0, Short.MAX_VALUE))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() - .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 141, Short.MAX_VALUE) + .addComponent(jLabel1) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 118, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(cancel) @@ -139,48 +147,6 @@ public class AdditionalBoardsManagerURLTextArea extends javax.swing.JDialog { cancelActionPerformed(evt); }//GEN-LAST:event_okActionPerformed - /** - * @param args the command line arguments - */ - public static void main(String args[]) { - /* Set the Nimbus look and feel */ - // - /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. - * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html - */ - try { - for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { - if ("Nimbus".equals(info.getName())) { - javax.swing.UIManager.setLookAndFeel(info.getClassName()); - break; - } - } - } catch (ClassNotFoundException ex) { - java.util.logging.Logger.getLogger(AdditionalBoardsManagerURLTextArea.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); - } catch (InstantiationException ex) { - java.util.logging.Logger.getLogger(AdditionalBoardsManagerURLTextArea.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); - } catch (IllegalAccessException ex) { - java.util.logging.Logger.getLogger(AdditionalBoardsManagerURLTextArea.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); - } catch (javax.swing.UnsupportedLookAndFeelException ex) { - java.util.logging.Logger.getLogger(AdditionalBoardsManagerURLTextArea.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); - } - // - - /* Create and display the dialog */ - java.awt.EventQueue.invokeLater(new Runnable() { - public void run() { - AdditionalBoardsManagerURLTextArea dialog = new AdditionalBoardsManagerURLTextArea(new javax.swing.JFrame()); - dialog.addWindowListener(new java.awt.event.WindowAdapter() { - @Override - public void windowClosing(java.awt.event.WindowEvent e) { - System.exit(0); - } - }); - dialog.setVisible(true); - } - }); - } - public void setText(String text) { Collection urls = splitAndTrim(text, ","); additionalBoardsManagerURLs.setText(Joiner.on("\n").skipNulls().join(urls)); diff --git a/app/src/cc/arduino/view/preferences/Preferences.form b/app/src/cc/arduino/view/preferences/Preferences.form index 828645018..8f6215f66 100644 --- a/app/src/cc/arduino/view/preferences/Preferences.form +++ b/app/src/cc/arduino/view/preferences/Preferences.form @@ -75,21 +75,16 @@ - - - - - - - - - - - - - - - + + + + + + + + + + @@ -472,6 +467,9 @@ + + +
@@ -479,6 +477,11 @@ + + + + + diff --git a/app/src/cc/arduino/view/preferences/Preferences.java b/app/src/cc/arduino/view/preferences/Preferences.java index 2d0262970..584b1bcb5 100644 --- a/app/src/cc/arduino/view/preferences/Preferences.java +++ b/app/src/cc/arduino/view/preferences/Preferences.java @@ -379,6 +379,9 @@ public class Preferences extends javax.swing.JDialog { ); additionalBoardsManagerLabel.setText(_("Additional Boards Manager URLs: ")); + additionalBoardsManagerLabel.setToolTipText(_("Enter a comma separated list of urls")); + + additionalBoardsManagerField.setToolTipText(_("Enter a comma separated list of urls")); extendedAdditionalUrlFieldWindow.setIcon(new ImageIcon(Base.getThemeImage("newwindow.gif", this))); extendedAdditionalUrlFieldWindow.addActionListener(new java.awt.event.ActionListener() { @@ -490,18 +493,15 @@ public class Preferences extends javax.swing.JDialog { .addComponent(preferencesFileLabel)) .addGap(0, 0, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addGap(0, 0, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addComponent(additionalBoardsManagerLabel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(additionalBoardsManagerField, javax.swing.GroupLayout.PREFERRED_SIZE, 494, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(extendedAdditionalUrlFieldWindow, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addComponent(okButton) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(cancelButton))))) + .addComponent(okButton) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(cancelButton)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addComponent(additionalBoardsManagerLabel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(additionalBoardsManagerField, javax.swing.GroupLayout.PREFERRED_SIZE, 500, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(extendedAdditionalUrlFieldWindow, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap()) ); layout.setVerticalGroup( diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index 37d258ed1..9ca878055 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -1422,7 +1422,7 @@ public class Editor extends JFrame implements RunnerListener { if (find == null) { find = new FindReplace(Editor.this); } - if (!OSUtils.isMacOS() && getSelectedText() != null) { + if (!OSUtils.isMacOS()) { find.setFindText(getSelectedText()); } find.setLocationRelativeTo(Editor.this); @@ -1458,11 +1458,8 @@ public class Editor extends JFrame implements RunnerListener { if (find == null) { find = new FindReplace(Editor.this); } - if (getSelectedText() != null) { - find.setFindText(getSelectedText()); - } - find.setLocationRelativeTo(Editor.this); - find.setVisible(true); + find.setFindText(getSelectedText()); + find.findNext(); } }); menu.add(item); diff --git a/app/src/processing/app/FindReplace.java b/app/src/processing/app/FindReplace.java index df1c95114..1c3b380d9 100644 --- a/app/src/processing/app/FindReplace.java +++ b/app/src/processing/app/FindReplace.java @@ -439,9 +439,12 @@ public class FindReplace extends JFrame implements ActionListener { } } - public void setFindText(String t) { - findField.setText(t); - findString = t; + public void setFindText(String text) { + if (text == null) { + return; + } + findField.setText(text); + findString = text; } public void findNext() { diff --git a/hardware/esp8266com/esp8266/cores/esp8266/debug.cpp b/hardware/esp8266com/esp8266/cores/esp8266/debug.cpp index 5e280122e..68d3a6b82 100644 --- a/hardware/esp8266com/esp8266/cores/esp8266/debug.cpp +++ b/hardware/esp8266com/esp8266/cores/esp8266/debug.cpp @@ -26,6 +26,7 @@ void ICACHE_RAM_ATTR hexdump(uint8_t *mem, uint32_t len, uint8_t cols) { for(uint32_t i = 0; i < len; i++) { if(i % cols == 0) { os_printf("\n[0x%08X] 0x%08X: ", mem, i); + yield(); } os_printf("%02X ", *mem); mem++; diff --git a/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp b/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp index 239a414ac..05d376aed 100644 --- a/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp +++ b/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp @@ -127,7 +127,7 @@ void Adafruit_ILI9341::spiwrite(uint8_t c) { #endif } -void Adafruit_ILI9341::spiwriteBytes(uint8_t * data, uint8_t size) { +void Adafruit_ILI9341::spiwriteBytes(uint8_t * data, uint32_t size) { #ifdef ESP8266 SPI.writeBytes(data, size); #else @@ -250,13 +250,21 @@ void Adafruit_ILI9341::writeCmdData(uint8_t cmd, uint8_t * data, uint8_t size) { spiCsHigh(); } +uint16_t Adafruit_ILI9341::getHeight(void) { + return _height; +} + +uint16_t Adafruit_ILI9341::getWidth(void){ + return _width; +} + // If the SPI library has transaction support, these functions // establish settings and protect from interference from other // libraries. Otherwise, they simply do nothing. #ifdef SPI_HAS_TRANSACTION #ifdef ESP8266 -SPISettings spiSettings = SPISettings(F_CPU, MSBFIRST, SPI_MODE0); +SPISettings spiSettings = SPISettings(SPI_MAX_SPEED, MSBFIRST, SPI_MODE0); #else SPISettings spiSettings = SPISettings(8000000, MSBFIRST, SPI_MODE0); #endif @@ -438,6 +446,20 @@ void Adafruit_ILI9341::begin(void) { } + +void Adafruit_ILI9341::area_update_start(uint32_t x, uint32_t y, uint32_t w, uint32_t h) { + spiCsLow(); + setAddrWindow_(x, y, x + w - 1, y + h - 1); +} + +void Adafruit_ILI9341::area_update_data(uint8_t *data, uint32_t pixel){ + spiwriteBytes(&data[0], (pixel*2)); +} + +void Adafruit_ILI9341::area_update_end(void){ + spiCsHigh(); +} + void Adafruit_ILI9341::setAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) { spiCsLow(); setAddrWindow_(x0, y0, x1, y1); @@ -583,7 +605,7 @@ void Adafruit_ILI9341::fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint spiCsLow(); - setAddrWindow_(x, y, x + w - 1, y + h - 1); + setAddrWindow_(x, y, (x + w - 1), (y + h - 1)); uint8_t colorBin[] = { (uint8_t) (color >> 8), (uint8_t) color }; spiwritePattern(&colorBin[0], 2, (w * h)); diff --git a/libraries/Adafruit_ILI9341/Adafruit_ILI9341.h b/libraries/Adafruit_ILI9341/Adafruit_ILI9341.h index 9b33b9b98..a5cf8aa7c 100644 --- a/libraries/Adafruit_ILI9341/Adafruit_ILI9341.h +++ b/libraries/Adafruit_ILI9341/Adafruit_ILI9341.h @@ -158,6 +158,13 @@ class Adafruit_ILI9341 : public Adafruit_GFX { void writedata(uint8_t * data, uint8_t size); void writeCmdData(uint8_t cmd, uint8_t * data, uint8_t size); + + uint16_t getHeight(void); + uint16_t getWidth(void); + + void area_update_start(uint32_t x, uint32_t y, uint32_t w, uint32_t h); + void area_update_data(uint8_t *data, uint32_t pixel); + void area_update_end(void); private: uint8_t spiread(void); @@ -166,7 +173,7 @@ class Adafruit_ILI9341 : public Adafruit_GFX { #ifdef ESP8266 inline void spiwrite(uint8_t data); inline void spiwrite16(uint16_t data); - inline void spiwriteBytes(uint8_t * data, uint8_t size); + inline void spiwriteBytes(uint8_t * data, uint32_t size); inline void spiwritePattern(uint8_t * data, uint8_t size, uint32_t repeat); inline void setAddrWindow_(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1);